Единство вопроса камеры качки - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть этот код, и он дает мне эту ошибку в некоторых полях.Кто-нибудь может дать мне решение, пожалуйста?

Assets \ Scripts \ CameraController.cs (46,17): ошибка CS0120: ссылка на объект требуется для нестатического поля, метода или свойства Camera.isOrthoGraphic'

Assets \ Scripts \ CameraController.cs (49,17): ошибка CS0120: Ссылка на объект требуется для нестатического поля, метода или свойства' Camera.orthographicSize '

Assets \ Scripts \ CameraController.cs (57,17): ошибка CS0120: ссылка на объект обязательна для нестатического поля, метода или свойства 'Camera.fieldOfView'

CODE:

публичный тип floatZoomSpeed ​​= 0.5f;// Скорость изменения поля зрения в перспективном режиме.публичный float orthoZoomSpeed ​​= 0.5f;// Скорость изменения орфографического размера в орфографическом режиме.

// Update is called once per frame
void Update () {

    if (GameManager.GameIsOver)
    {
        this.enabled = false;
        return;
    }

    // If there are two touches on the device...
    if (Input.touchCount == 2)
    {
        // Store both touches.
        Touch touchZero = Input.GetTouch(0);
        Touch touchOne = Input.GetTouch(1);

        // Find the position in the previous frame of each touch.
        Vector2 touchZeroPrevPos = touchZero.position - touchZero.deltaPosition;
        Vector2 touchOnePrevPos = touchOne.position - touchOne.deltaPosition;

        // Find the magnitude of the vector (the distance) between the touches in each frame.
        float prevTouchDeltaMag = (touchZeroPrevPos - touchOnePrevPos).magnitude;
        float touchDeltaMag = (touchZero.position - touchOne.position).magnitude;

        // Find the difference in the distances between each frame.
        float deltaMagnitudeDiff = prevTouchDeltaMag - touchDeltaMag;

        // If the camera is orthographic...
        if (**Camera.isOrthoGraphic**)
        {
            // ... change the orthographic size based on the change in distance between the touches.
            **Camera.orthographicSize** += deltaMagnitudeDiff * orthoZoomSpeed;

            // Make sure the orthographic size never drops below zero.
            **Camera.orthographicSize** = Mathf.Max(**Camera.orthographicSize**, 0.1f);
        }
        else
        {
            // Otherwise change the field of view based on the change in distance between the touches.
            **Camera.fieldOfView** += deltaMagnitudeDiff * perspectiveZoomSpeed;

            // Clamp the field of view to make sure it's between 0 and 180.
            **Camera.fieldOfView** = Mathf.Clamp(**Camera.fieldOfView**, 0.1f, 179.9f);
        }
    }
}

Ответы [ 2 ]

0 голосов
/ 26 февраля 2019

Просто замените Camera.xxxxx на свою собственную камеру в вашей сцене, например:

  • Camera.main.isOrthoGraphic
  • Camera.main.orthographicSize
  • Camera.main.fieldOfView.
0 голосов
/ 26 февраля 2019

Вам нужно получить экземпляр основной камеры, добавить поле

public Camera cam;

и получить доступ с помощью cam.IsOrtographic

Убедитесь, что вы связали его в редакторе с вашей камерой

...