Ограничение соприкосновением с экраном?

В Unity есть несколько способов реализации ограничения объекта соприкосновением с экраном. Один из таких способов - использование компонента Collider2D или Collider, чтобы определить границы экрана и контролировать позицию объекта.

Для начала, необходимо добавить компонент Collider2D или Collider к объекту, который нужно ограничить. Для 2D объектов используется Collider2D, а для 3D объектов - Collider.

Затем, нужно определить границы экрана, чтобы объект не мог выйти за эти границы. Это можно сделать с помощью метода Camera.main.ScreenToWorldPoint(), который преобразует координаты экрана в мировые координаты. Например, границы экрана можно определить следующим образом:

Camera mainCamera = Camera.main;
float screenWidth = mainCamera.ScreenToWorldPoint(new Vector3(Screen.width, 0, 0)).x;
float screenHeight = mainCamera.ScreenToWorldPoint(new Vector3(0, Screen.height, 0)).y;

После этого, можно использовать полученные значения для ограничения позиции объекта. Например, если объект - это 2D спрайт, можно использовать следующий код, чтобы ограничить его позицию вдоль оси X:

void Update()
{
    Vector3 constrainedPosition = transform.position;
    constrainedPosition.x = Mathf.Clamp(constrainedPosition.x, -screenWidth, screenWidth);
    transform.position = constrainedPosition;
}

Подобным образом можно ограничить позицию объекта вдоль оси Y:

void Update()
{
    Vector3 constrainedPosition = transform.position;
    constrainedPosition.y = Mathf.Clamp(constrainedPosition.y, -screenHeight, screenHeight);
    transform.position = constrainedPosition;
}

Таким образом, объект будет ограничен соприкосновением с экраном и не сможет выйти за пределы определенных границ.