Есть сцена и мне нужно чтобы объект не выходил за рамки камеры. Пробовал ограничить кодам(1), объект все равно проходит за границей. Пока решил так, просто поставил бокс коллайдеры по краям сцены, оно то работает. Но одна проблема, когда я изменяю разрешение игры то коллайдеры остаются на своих местах и эти коллайдеры уже внутри сцены. Можно ли как нибудь сделать чтобы коллайдеры масштабировались под разрешения экрана?
1. Код объекта.
// Update is called once per frame
void Update()
{
//Определяет касания игрока
if (Input.touchCount > 0)
{
//Движение нижней платформы
touch = Input.GetTouch(0);
if (touch.phase == TouchPhase.Moved)
{
transform.position = new Vector3(transform.position.x + touch.deltaPosition.x * speedModifiler,
-3,
transform.position.z + touch.deltaPosition.y * speedModifiler);
}
}
//Граница сцены
Vector2 min = Camera.main.ViewportToWorldPoint(new Vector2(0, 0));//это нижняя левая точка (угол) экрана
Vector2 max = Camera.main.ViewportToWorldPoint(new Vector2(1, 1));//это верхняя правая точка (угол) экрана
max.x = max.x - 0.7f;//вычесть половину ширины спрайта игрока
min.x = min.x + 0.7f;//добавить половинную ширину спрайта игрока
max.y = max.y - 0.285f;//вычесть высоту спрайта игрока
min.y = min.y + 0.285f;//добавить высоту спрайта игрока
//Получить текущую позицию игрока
Vector2 pos = transform.position;
//Убедитесься, что новая позиция не находится за пределами экрана.
pos.x = Mathf.Clamp(pos.x, min.x, max.x);
pos.y = Mathf.Clamp(pos.y, min.y, max.y);
//Обновить позицию игрока
transform.position = pos;
}