Unity - оставайтесь в пределах экрана

Я делал 2D-игру сверху вниз и столкнулся с небольшой проблемой. Мне нужно, чтобы плеер всегда оставался в пределах экрана. Я видел людей с этой проблемой раньше и пробовал их решения, однако ни один из них не работал с моей игрой. Это потому, что мой персонаж использует физику для передвижения. Вот что у меня внутри функции FixedUpdate:

    minScreenBounds = Camera.main.ScreenToWorldPoint(new Vector3(0, 0, 0));
    maxScreenBounds = Camera.main.ScreenToWorldPoint(new Vector3(Screen.width, Screen.height, 0));

    transform.position = new Vector3(Mathf.Clamp(transform.position.x, minScreenBounds.x + 1, maxScreenBounds.x - 1), Mathf.Clamp(transform.position.y, minScreenBounds.y + 1, maxScreenBounds.y - 1), transform.position.z);

Если кто-нибудь знает, как это исправить, я был бы очень признателен, если бы вы могли рассказать мне, как.

Большое спасибо,

Томми

1 ответ

Сделать 4 кинематическихRigidbody2Dк краям экрана, как показано ниже (зеленые коллайдеры), и управляйте их масштабом / положением для ваших нужд.

введите описание изображения здесь

Другие вопросы по тегам