Четверг, 28 Марта 2024, 17:53

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос
Вопрос
VasaGameDevДата: Четверг, 09 Октября 2014, 19:19 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Как сделать чтобы переменная типа bool меняла свое значение при исчезновении объекта со сцены, делал через триггер не получилось.
laswegasaДата: Четверг, 09 Октября 2014, 19:33 | Сообщение # 2
почетный гость
Сейчас нет на сайте
А можно развернутый вопрос? Просто единственное что я вам могу посоветовать это сделать проверку dry



Сообщение отредактировал laswegasa - Четверг, 09 Октября 2014, 19:33
VasaGameDevДата: Четверг, 09 Октября 2014, 19:42 | Сообщение # 3
почетный гость
Сейчас нет на сайте
НУ представь если просто со сцены удалить например игрока то в скрипте переменная bool станет равна false, а до удаления игрока она была true
MANMANAДата: Четверг, 09 Октября 2014, 20:06 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
bool variable = true;//переменная значение которой будем менять
bool игрок_присутствует_на_сцене = true;

Update
{
if (игрок_присутствует_на_сцене == false) variable = false;
}

//?так? smile


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею
VasaGameDevДата: Четверг, 09 Октября 2014, 20:13 | Сообщение # 5
почетный гость
Сейчас нет на сайте
Это понятно, а как сделать чтобы игра определяла есть ли игрок на сцене или нет
MANMANAДата: Четверг, 09 Октября 2014, 20:32 | Сообщение # 6
почти ветеран
Сейчас нет на сайте
если ты свой объект уничтожаешь через Destroy ();

то после него пиши игрок_на_сцене = false;

или можешь поискать объект на сцене

Код
GameObject myWarrior = GameObject.Find("myObjectName");//ищешь объект с именем myObjectName
if (myWarrior == false) Debug.Log ("Объект не найден");

можешь поискать по tag'у

Код
GameObject myWarrior = GameObject.FindWithTag("myObjectTag");//ищешь объект с тагом myObjectTag
if (myWarrior == false) Debug.Log ("Объект не найден");


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Четверг, 09 Октября 2014, 20:52
GreexonДата: Четверг, 09 Октября 2014, 20:35 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Попробуйте искать его по имени, если нет его то переменная ==false,
хотя может это так не работает, не знаю.
И не легче ли сделать наоборот: если переменная =false, то объект исчезает?
RangerДата: Четверг, 09 Октября 2014, 20:54 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnDisable.html

MANMANAДата: Четверг, 09 Октября 2014, 20:56 | Сообщение # 9
почти ветеран
Сейчас нет на сайте
если хочешь еще и удалить объект

Код
GameObject myWarrior = GameObject.Find("Quad_Ship");//ищешь объект с именем myObjectName
    if (myWarrior == true) {
     Debug.Log ("Объект найден. Уничтожаем.");
     Destroy(myWarrior);//уничтожаем объект
      bool objectIsDestroyed = true;
      Debug.Log (objectIsDestroyed);    
     }
    }


Код
вместо Destroy(myWarrior);

можно написать
Код
myWarrior.SetActive(false);

Так объект задизейблится и не будет виден на сцене


http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг
VKонтакте 3Dbuffer

Последнее:

Новый раздел "Текстуры"

Как запатентовать, защитить техническое решение, игру, идею


Сообщение отредактировал MANMANA - Четверг, 09 Октября 2014, 21:03
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Вопрос
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг