Проблема с bool [c#]

Программирование на Юнити.

Проблема с bool [c#]

Сообщение Joim 06 фев 2017, 19:42


public class scriptCveta : MonoBehaviour
{
public Light[] l;
public bool stayd;
void OnTriggerEnter(Collider col)
{
if (col.gameObject.name == "pers")
{
bool stayd = true;
}
}
void OnTriggerStay(Collider other)
{
if (other.gameObject.name == "pers")
{
bool stayd = true;
if (Input.GetKeyDown("f"))
{
l[0].enabled = !l[0].enabled;
}


}


}
void OnTriggerExit(Collider col2)
{
if (col2.gameObject.name == "pers")
{
bool stayd = false;
}
}
void OnGUI()
{
if (stayd == true)
{
GUI.Label(new Rect(330, 120, 100, 20), "Вкл/выкл свет");
}
}


}
Смысл кода в том что-бы, когда я находился и заходил в триггер, моя переменная bool "stayd" ,становилась true, а при выходе снова false. Что-бы потом вывести сообщение на экран. Но переменная "bool", не становится true! Я даже ее публичной сделал, что-бы проверит так ли это. Никакой реакции. "Персонажа зовут pers"
Joim
UNец
 
Сообщения: 27
Зарегистрирован: 06 фев 2017, 19:35

Re: Проблема с bool [c#]

Сообщение samana 06 фев 2017, 19:52

В классе вы уже объявили переменную
Синтаксис:
Используется csharp
public bool stayd;

поэтому в пределах этого класса вы можете обращаться к ней просто через stayd, а не создавать локальную переменную с таким же именем в каждом методе
Синтаксис:
Используется csharp
if (other.gameObject.name == "pers")
        {
            bool stayd = true;// локальная переменная


Просто уберите слово bool перед stayd в каждом методе класса.
Аватара пользователя
samana
Адепт
 
Сообщения: 4738
Зарегистрирован: 21 фев 2015, 13:00
Откуда: Днепропетровск

Re: Проблема с bool [c#]

Сообщение Joim 07 фев 2017, 10:13

Ахаха, тупанул так тупанул. Огромное спасибо!
Joim
UNец
 
Сообщения: 27
Зарегистрирован: 06 фев 2017, 19:35


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 8