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

#c# #unity3d #camera #2d

#c# #Unity3D #Камера #2d

Вопрос:

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

По сути, я хочу создать ту же логику, которую используют игры 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;
    }

  

Комментарии:

1. Вы устанавливаете cameraLeadingUp = false; и cameraLeadingUp = true; , но ни один из них не может быть истинным, если другой не будет истинным первым

2. Спасибо @CamiloTerevinto, это имеет смысл, я не уверен, что делать, чтобы это исправить, есть предложения?

3. Предложение: не используйте Update use FixedUpdate (на основе физики), что даст вам более плавное отслеживание камеры.

4. Хорошо, теперь я отредактировал приведенный выше код, и, похоже, он делает то, чего я пытаюсь достичь, но в обратном направлении. Он удерживает моего игрока в центре экрана, если он не достигнет границ, а затем камера остановится, мне нужно обратное, где камера остается неподвижной, если игрок не выходит за пределы границ

5. Какова ценность camheigh ?