Как заблокировать поворот камеры контроллера FPS из стандартного актива при входе триггера в Unity 3D? - PullRequest
0 голосов
/ 30 мая 2020

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

public GameObject canvas;
public Transform Camera;

void Start()
{
    canvas.gameObject.SetActive(false);    
}

void OnTriggerEnter(Collider col)
{
    canvas.gameObject.SetActive(true);
    Time.timeScale = 0;
    Camera.transform.rotation = Quaternion.Euler(0, 0, 0);
}

1 Ответ

0 голосов
/ 22 июня 2020

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

Например:

public GameObject canvas;
public Transform Camera;

void Start()
{
    canvas.gameObject.SetActive(false);    
}

void OnTriggerEnter(Collider col)
{
    canvas.gameObject.SetActive(true);
    Time.timeScale = 0;
}

void OnTriggerStay(Collider col) 
{ 
      Camera.transform.rotation = Quaternion.Euler(0, 0, 0);
}
...