Как переместить камеру вверх по оси Y только тогда, когда игрок достигает верхней 1/2 экрана в Unity C#

Это для 2D платформера.

Я не хочу, чтобы камера двигалась вверх по оси Y, когда игрок прыгает. Я хочу, чтобы он перемещался только тогда, когда игрок перемещается в верхнюю часть экрана, чтобы он мог прокручивать вверх до вертикальных платформ и лестниц.

Кто-нибудь знает, что нужно ввести в код и редактор Unity, чтобы это можно было сделать?

Вот код, который у меня есть в сценарии камеры.

public class CameraControl : MonoBehaviour {

    public GameObject target;
    public float followAhead;
    public float smoothing;

    private Vector3 targetPosition;

    // Use this for initialization
    void Start () {

    }

    // Update is called once per frame
    void Update () {
        targetPosition = new Vector3 (target.transform.position.x, transform.position.y, transform.position.z);

        if (target.transform.localScale.x > 0f) {
            targetPosition = new Vector3 (targetPosition.x + followAhead, targetPosition.y, targetPosition.z);
        } else {
            targetPosition = new Vector3 (targetPosition.x - followAhead, targetPosition.y, targetPosition.z);
        }

        transform.position = Vector3.Lerp (transform.position, targetPosition, smoothing * Time.deltaTime);
    }
}

person hckrieger    schedule 20.05.2017    source источник
comment
Вы можете создать raycast от камеры к игроку под определенным углом, вы знаете, что этот игрок выше предела, который вы рассчитали, тогда вы перемещаете камеру?   -  person Florian Castelain    schedule 21.05.2017


Ответы (1)


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

Итак, в Update() камеры вы можете сделать что-то вроде этого:

void Update() {
    // Update camera X position
    if (isPlayerJumping) return;
    // Update camera Y position
}

Таким образом, вы обновляете положение камеры по оси Y, только если игрок не прыгает, а положение по оси X все равно обновляется во всех случаях (даже во время прыжка).

person Galandil    schedule 21.05.2017