#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);
}
}