#pragma strict var Trigger:GameObject;//Обьект с тригером и нужным мне скриптао(VeaponSelest) var GM=1;//делал тожесамое с true false без результата(нужно для включение -выключения скрипта) function Start () { Trigger.GetComponent(VeaponSelest).enabled=false; } function Update () {
} function OnTriggerStay(other:Collider){ if(Input.GetKeyDown ("e")&&GM==1){ Trigger.GetComponent(VeaponSelest).enabled=true;//GUI скрипт с меню покупок other.gameObject.SetActiveRecursively(false);//отключение игрока и всехскриптов на нем GM=2; } if(Input.GetKeyDown ("e")&&GM==2){ Trigger.GetComponent(VeaponSelest).enabled=false; other.gameObject.SetActiveRecursively(true); GM=1; }
}
скрипт работает нормально,если нужно только включить меню покупки и выключить игрока,но когда добавляю вторую проверку работать не хочет не включение магазина не выключение(если не та тема или не понятно описал проблему,пишите исправлю)
if(Input.GetKeyDown ("e") if(GM==1) { Trigger.GetComponent(VeaponSelest).enabled=true;//GUI скрипт с меню покупок other.gameObject.SetActiveRecursively(false);//отключение игрока и всехскриптов на нем GM=2; }else if(GM==2) { Trigger.GetComponent(VeaponSelest).enabled=false; other.gameObject.SetActiveRecursively(true); GM=1; }
пробывал и так,все равно не выходит,отключить отключает а обратно не возвращает.Скорей всего прблема в подходе,не те методы беру. Мне нужно что б при открытии меню покупок,игрок перестал двигатся а при выходе снова включалось управление. пытался выключить мауслук через GetComponent пишет ошибку..
Сообщение отредактировал Жили-были - Пн, 20 Авг 2012, 19:49
тебе надо в скрипте прописать pause когда например pause тогда что то не работает и сделать ее в статик чтобы проверять с других скриптов static var Pause : boolean;
наверно после other.gameObject.SetActiveRecursively(false); объекта нету попробуй через Transform или Object
Сообщение отредактировал Hunjeth - Пн, 20 Авг 2012, 20:36
спс.позже попробую.а разве на паузе скрипты будут работать.я пытался в юнити на паузу кнопкой ставить и работать с менювыбора,вроде и оно на паузу становится.
Что-то я ничего не понял. На чем висит скрипт? Имхо - на игроке, т.к. он же входит в триггер. Тогда что по Вашему other в OnTriggerStay? - это Ваш триггер!
создан тригер(зона покупки с продавцом),на нем скрипт с предметами покупки,когда игрок входит в зону тригера и жмет кнопку е,включается скрипт (скажем так с "магазином"),в скрипте(магазина) есть кнопка выхода с него которая работает нормально, проблема в том,что когда я начинаю водить мышкой по пунктам(магазина) игрок крутится во все стороны а мне этого не нужно. не научился я обьяснать...наверно нужно чаще просить помощи)
и да.что б не создавать еще одну тему,как заменить gameObject в переменной не через инспектор? пытался так не получилось
Code
var a:GameObject; var b:GameObject;
function .... if(){ a==b;}
Сообщение отредактировал Жили-были - Пн, 20 Авг 2012, 21:14
Ну так я же написал - other в OnTriggerStay? - это Ваш триггер! Тогда что вы отключаете SetActiveRecursively? - все в триггере? Имхо вешаем скрипт на игрока! 1. переменная Trigger вообще не нужна - ее спокойно получаем из other. Вместо Trigger.GetComponent(VeaponSelest).enabled=true; пишем other.GetComponent(VeaponSelest).enabled=true; 2. вместо other.gameObject.SetActiveRecursively(true); пишем gameObject.SetActiveRecursively(true);