Переключение между первым и третьим лицом (unity)

#javascript #unity3d

#javascript #unity3d

Вопрос:

У меня есть проект в Unity. Как можно изменить символ третьего лица на имя первого лица при вводе в триггер? Я пробую этот js-код на проигрывателе, но не работает

  #pragma strict

var ThePlayer:GameObject;
var FirstPersonCam:GameObject;
var ThirdPersonCam:GameObject;
var check;

function Start () {
    ThirdPersonCam.gameObject.active=true;
    FirstPersonCam.gameObject.active=false;
    check=true;
}


function OnTriggerEnter( other :Collider)
{

    if(other.gameObject.name == "rubbishTrigger1")
    {
        if(check){
            FirstPersonCam.gameObject.active=true;
            ThirdPersonCam.gameObject.active=false;
        }
        else{
            FirstPersonCam.gameObject.active=false;
            ThirdPersonCam.gameObject.active=true;
        }
        check=!check;
    }

}
  

Пожалуйста, помогите мне.
Спасибо

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

1. нам нужно больше информации о вашей сцене, как вы настроены? Что происходит прямо сейчас?

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

3. Попробуйте поместить Debug.Log(«ввод при вводе триггера»); прямо там, где начинается функция, а затем поместите Debug.Log («ввод оператора if»); сразу после запуска if. Это позволит вам узнать, регистрирует ли он даже столкновение, и если это произойдет, это также сообщит вам, связано ли столкновение с «rubbishTrigger1»

4. Также попробуйте gameObject.SetActive(true/false) использовать, поскольку active устарел

Ответ №1:

Я нашел свой ответ. приведенный ниже код верен, и он работает хорошо.

 #pragma strict

var ThePlayer:GameObject;
var player:GameObject;
var FirstPersonCam:GameObject;
var ThirdPersonCam:GameObject;
var trigger:GameObject;


function OnTriggerEnter (other : Collider) {

    if(FirstPersonCam.gameObject.active==false amp;amp; ThirdPersonCam.gameObject.active==true){
        FirstPersonCam.gameObject.active=true;
        ThirdPersonCam.gameObject.active=false;
        player.gameObject.SetActive(false);
    }
}