@Azmi

Как настроить камеру для TopDown игры 2D?

У нас есть какая-то локация, на ней движется персонаж, камера привязана к нему, соответственно двигается за ним, у камеры присутствуют максимальные и минимальные значения, чтобы не показывались текстуры вне локации, как только персонаж подходит к одной из границ локации камера останавливается, причём персонаж может идти дальше, НО если изменить разрешение с 16:9(1920х1080) на 4:3(800х600), то камера не доезжает до нужной ей границы, есть ли возможность это решить или легче достроить пару текстур вне локации и задать максимальное и минимальное значения камеры побольше

1920x1080
Game
619ddb80182a5391202435.jpeg
Scene
619ddb72c4ceb703192152.jpeg

800x600
Game
619ddbdec943a933936608.jpeg
Scene
619ddbd441e19393110323.jpeg

Короткое видео - https://www.youtube.com/watch?v=AewMkNubhYA


Настройки камеры
619ddc15aaea3600599859.png

Скрипт камеры

public class CameraController : MonoBehaviour
{
    public Transform target;
    public float smoothing;
    public Vector2 maxPosition;
    public Vector2 minPosition;
    void Start()
    {
        transform.position = new Vector3(target.position.x,target.position.y,transform.position.z);
    }
    void LateUpdate()
    {
        if(transform.position != target.position)
        {
            Vector3 targetPosition = new Vector3(target.position.x, target.position.y, transform.position.z);
            targetPosition.x = Mathf.Clamp(targetPosition.x, minPosition.x, maxPosition.x);
            targetPosition.y = Mathf.Clamp(targetPosition.y, minPosition.y, maxPosition.y);
            transform.position = Vector3.Lerp(transform.position, targetPosition, smoothing);
        }
    }
}
  • Вопрос задан
  • 784 просмотра
Пригласить эксперта
Ответы на вопрос 2
@NIKROTOS
Начинающий программист.
У тебя минимальная и максимальная позиция под одно разрешение, а ставишь другое. Либо задай эти данные напрямую сразу, либо считай в старте. Кстати targetPosition лучше создавать в старте
Ответ написан
@mustGamedev
C# Unity developer
В unity есть удобный плагин на камеру - cinemachine.
Он позволяет и ограничить out of bounds пространства чтобы персонаж за игровое пространство не заходил.

Другой способ более лёгкий.
Никакие плагины не подключаешь, оставляешь все как есть. Просто по периметру расставляешь невидимые стены , за которые игрок не будет заходить за пространство. Профит
Ответ написан
Ваш ответ на вопрос

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

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