Как я могу создать камеру, похожую на Mario, но вертикальную? - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь написать скрипт для слежения за камерой для своей игры в вертикальный платформер, я просмотрел много уроков и нашел несколько, которые работают в определенной степени, но не совсем так, как мне нужно.

По сути, я хочу создать ту же логику, которую используют игры Mario, когда решают, что камера должна следовать за игроком, а когда нет, но вместо этого по оси Y ниже приведен пример из игр Mario:

Ниже приведено то, что я пытался сделать, я не получаю ошибок, но камера остается неподвижной (она ничего не делает), а cameraLeadingUp и CameraLeadingDown никогда не становятся истинными в инспекторе.

void Start()
    {
        camHeight = Camera.main.orthographicSize;

        camWidth = camHeight * Camera.main.aspect;

        cameraLeadingUp = true;

        cameraLeadingDown = false;
    }

    void FixedUpdate ()
    {

        Vector3 temp = transform.position;

        if (cameraLeadingUp)
        {
            if (playerLocation.position.y < camHeight / 0.25f)
            {
                cameraLeadingDown = true;
                cameraLeadingUp = false;
            }
        }
        else if (cameraLeadingDown)
        {
            if (playerLocation.position.y > camHeight / 0.25f)
            {
                cameraLeadingUp = true;
                cameraLeadingDown = false;
            }
        }

        if (cameraLeadingDown)
        {
            temp.y = Mathf.Min(camHeight / 0.90f, playerLocation.position.y);
        }

        if (cameraLeadingUp)
        {
            temp.y = Mathf.Max(camHeight / 0.90f, playerLocation.position.y);
        }

        transform.position = temp;
    }

...