@Pleiada
Unity разработчик

Как остановить движение UI-панели при достижении границы экрана в Unity?

Есть панель, которая двигается при нажатии на определенную область экрана.

606ac790025aa619631494.png
Нужно сделать так, что бы панель прекращала движении после достижения края камеры / экрана.

Исходный код:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class UpgradeMenuScript : MonoBehaviour
{
    public RectTransform upgradeMenu;

    private Rect leftPart = new Rect(0, 0, Screen.width / 3, Screen.height);
    private Rect rightPart = new Rect(Screen.width / 3 * 2, 0, Screen.width / 3, Screen.height);
    private Rect upperPart = new Rect(0, Screen.height / 3 * 2, Screen.width, Screen.height / 3);
    private Rect downPart = new Rect(0, 0, Screen.width, Screen.height / 3);

    void Update()
    {
        if (Input.GetMouseButton(0))
        {
            if (leftPart.Contains(Input.mousePosition))
            {
                upgradeMenu.transform.Translate(new Vector2(15, 0) * Time.deltaTime);
            }
            if (rightPart.Contains(Input.mousePosition))
            {
                upgradeMenu.transform.Translate(new Vector2(-15, 0) * Time.deltaTime);
            }
            if (upperPart.Contains(Input.mousePosition))
            {
                upgradeMenu.transform.Translate(new Vector2(0, -15) * Time.deltaTime);
            }
            if (downPart.Contains(Input.mousePosition))
            {
                upgradeMenu.transform.Translate(new Vector2(0, 15) * Time.deltaTime);
            }
        }
    }
}
  • Вопрос задан
  • 101 просмотр
Решения вопроса 1
@namee
И что вас останавливает? Поставьте проверку.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы