переместить положение камеры y при столкновении с триггером - PullRequest
0 голосов
/ 06 декабря 2018

Если мой персонаж столкнулся с Объектом, я хочу, чтобы положение моей камеры y немного сместилось вниз.Я пытался запрограммировать его так:

void OnTriggerEnter2D(Collider other)
{
                float x = Camera.main.transform.position.x;
                float y = Camera.main.transform.position.y;
                Vector3 origPOS = new Vector3(x, (Mathf.Lerp(y, -3, 3 * Time.deltaTime)), 0);
                Camera.main.transform.position = origPOS;
}

, но он не ведет себя так, как я хочу.Ребята, можете ли вы мне помочь?

Это изображение исходного положения камеры: enter image description here

Это желаемое положение моей камеры, когда мой персонаж столкнулсяв объект и выполнить функцию, которая будет перемещать мою камеру:

enter image description here

Ответы [ 2 ]

0 голосов
/ 06 декабря 2018

Вы можете запустить Сопрограмму при столкновении для перемещения вашей камеры:

void OnTriggerEnter2D(Collider other)
{
    StartCoroutine(MoveCamera());
}

IEnumerator MoveCamera()
{
    float t = 0.0f;

    Vector3 originPosition = Camera.main.transform.position;
    Vector3 endPosition = new Vector3(originPosition.x, originPosition.y - 3, originPosition.z);

    while ( t < 1.0f )
    {
        Camera.main.transform.position = Vector3.Lerp(originPosition, endPosition, t);
        t += Time.deltaTime * CameraSpeed; // CameraSpeed is the speed of your camera.

        yield return null; // Don't forget this line !
    }
}
0 голосов
/ 06 декабря 2018

Проблема в том, что эта строка кода вызывается только один раз (когда ваш персонаж столкнулся) и заканчивается до достижения желаемого места назначения.как это

float t = 0.0f;
while ( t<1.0f )
{
    float x = Camera.main.transform.position.x;
    float y = Camera.main.transform.position.y;
    t += Time.deltaTime;
    Vector3 origPOS = new Vector3(x, (Mathf.Lerp(y, -3, 3 * Time.deltaTime),t), 0)
    Camera.main.transform.position = origPOS;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...