Теперь проблема с моделью[РЕШЕНО]
| |
dzrone3488 | Дата: Четверг, 07 Августа 2014, 18:29 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Часов 3 назад, наверно я сделал тему где изложил проблему связанную со скриптом. На всякий случай скрипт из прошлого вопроса - Код using UnityEngine; using System.Collections;
public class SwitcherWeapon : MonoBehaviour {
public GameObject gun; public bool bgun; public GameObject pistol; public bool bpistol; public GameObject gran; public bool bgran;
void Start () { bgun = true; bpistol = false; bgran = false; }
void Update () { if (bgun == true) { if (Input.GetKeyDown(KeyCode.P)) { gun.active = false; pistol.active = true; gran.active = false; bgun = false; bpistol = true; bgran = false; } if (Input.GetKeyDown(KeyCode.G)) { gun.active = false; pistol.active = false; gran.active = true; bgun = false; bpistol = false; bgran = true; } } else if (bpistol == true) { if (Input.GetKeyDown(KeyCode.E)) { gun.active = true; pistol.active = false; gran.active = false; bgun = true; bpistol = false; bgran = false; } if (Input.GetKeyDown(KeyCode.G)) { gun.active = false; pistol.active = false; gran.active = true; bgun = false; bpistol = false; bgran = true; } } else if (bgran == true) { if (Input.GetKeyDown(KeyCode.E)) { gun.active = true; pistol.active = false; gran.active = false; bgun = true; bpistol = false; bgran = false; } if (Input.GetKeyDown(KeyCode.P)) { gun.active = false; pistol.active = true; gran.active = false; bgun = false; bpistol = true; bgran = false; } } } }
Ну а теперь, когда я решил это испытать... У меня есть только одна модель оружия, которую я сделал сам. По этому вместо скорострельного оружия и гранаты я использовал шарик и кубик. Шарик и кубик переключаются хорошо, как надо. А вот моя модель... При нажатии на клавишу "G" или "E" шарик или кубик переключается, а моя модель нет. Она даже не исчезает. А когда отключил в инспекторе (галочку убрал) он на нажатие, не реагирует и не появляется, что мне делать? Этот проект очень хочется до делать.
Вот фото инспектора модели. (Вдруг надо)
Я делаю игры, а вы в них играете! :) Моя группа по созданию игр - www.vk.com/dzrone
Сообщение отредактировал dzrone3488 - Суббота, 09 Августа 2014, 21:18 |
|
| |
beril | Дата: Четверг, 07 Августа 2014, 19:50 | Сообщение # 2 |
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
| .activeSelf
Накодил? Убери за собой! Инвентарь в Unity(UI) Инвентарь в Unity(GUI)
|
|
| |
dzrone3488 | Дата: Пятница, 08 Августа 2014, 00:36 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Цитата beril ( ) .activeSelf Куда пихать? Пытался пихать за место pistol.active = true; на pistol.activeSelf = true; Нечего не получилось!
Я делаю игры, а вы в них играете! :) Моя группа по созданию игр - www.vk.com/dzrone
|
|
| |
MANMANA | Дата: Пятница, 08 Августа 2014, 01:54 | Сообщение # 4 |
почти ветеран
Сейчас нет на сайте
| Когда пишешь "ничего не получилось" - это наводит на мысли. Он тебе пишет ошибку, что activeSelf только для чтения?
перед и после gun.active = true; пропиши print(gun.activeSelf) или Debug.Log(gun.activeSelf); и смотри в консоли, что тебе пишутки-мишутки: активно оружие до и после нажатия кнопки Ты когда галочку с active в Инспекторе убрал, я так понял, он убрался со сцены? Может быть, ты что-то не договариваешь, и тебе какие-то предупреждения движок выдает в консоли, о которых мы не знаем?
В Инспекторе на public GameObject gun; перетащил объект? Не ругается ли у тебя движок в консоли "NullReferenceException: Object reference not set to an instance of an object" при неактивном объекте много чего нельзя...
Пропиши в Start(){ ... gun = GameObject.Find("Glock 39");// Здесь укажи точное имя из инспектора. Зачем пробелы писать в именах? В переменных же вы не пишете "My Gun", а напишете в худшем случае MyGun, в лучшем myGun. ...
}
либо поставь своему пистолету tag -> myGun в старте, вместо строки, которая написана выше, напиши gun = GameObject.FindWithTag("myGun");
если не помогло, и нам показана лишь часть твоего кода, переименуй gun в gunTwo (либо создай новую переменную) именно в показанном нам участке кода.
оружие подчинено к какому-то объекту, например модели S.W.A.T.'овца? хм... Если да, то закинь кубик свой и шарик рядом с пушкой, посмотри шарик и кубик появляются у него в руке? S.W.A.T.-маг, а шо? Если нет, смотреть нужно настройки объекта-родителя в Инспекторе. Ну и напоследок я скажу: после print(gun.activeSelf); пропиши print(gun.activeInHierarchy);
Если у тебя объект подчинен родителю, а он выключен, то ошибки повалятся еще при поиске объекта по тагу или имени. "NullReferenceException: Object reference not set to an instance of an object" Включи родителя, или к чему привязано оружие.
За сим фантазия заканчивается...
судя по масштабу модельки.... Она у тебя на сцене видна?
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
Сообщение отредактировал MANMANA - Пятница, 08 Августа 2014, 01:58 |
|
| |
JonLivingston | Дата: Пятница, 08 Августа 2014, 11:30 | Сообщение # 5 |
почетный гость
Сейчас нет на сайте
| Что-то мне подсказывает, что автор действительно не перетащил объект в inspector, ибо именно в этом случае модель и на команды реагировать не будет, и ошибки "NullReferenceException: Object reference not set to an instance of an object" не возникнет при отключении. И если это действительно так, то автор получит от меня жирный минус, ибо нефиг!
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
Сообщение отредактировал JonLivingston - Пятница, 08 Августа 2014, 11:30 |
|
| |
MANMANA | Дата: Пятница, 08 Августа 2014, 14:30 | Сообщение # 6 |
почти ветеран
Сейчас нет на сайте
| Предупреждения должны вываливаться. Но кубик и шарик и него включаются и отключаются, и отлично переключаются.
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
Сообщение отредактировал MANMANA - Пятница, 08 Августа 2014, 14:31 |
|
| |
dzrone3488 | Дата: Пятница, 08 Августа 2014, 21:22 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Цитата dzrone3488 ( ) Он тебе пишет ошибку, что activeSelf только для чтения?
Нет
Цитата MANMANA ( ) В Инспекторе на public GameObject gun; перетащил объект?
Естественно
Цитата MANMANA ( ) Пропиши в Start(){ ... gun = GameObject.Find("Glock 39");// Здесь укажи точное имя из инспектора. Зачем пробелы писать в именах? В переменных же вы не пишете "My Gun", а напишете в худшем случае MyGun, в лучшем myGun. ... }
Пытался, нечего не изменилось
Цитата MANMANA ( ) либо поставь своему пистолету tag -> myGun в старте, вместо строки, которая написана выше, напиши gun = GameObject.FindWithTag("myGun");
Тоже пытался
Цитата MANMANA ( ) оружие подчинено к какому-то объекту, например модели S.W.A.T.'овца?
Нет, модель отдельна делалась от пистолета. Но связна с рукой.
Цитата MANMANA ( ) судя по масштабу модельки.... Она у тебя на сцене видна?
Да, даже больше руки оказалась
Цитата JonLivingston ( ) Что-то мне подсказывает, что автор действительно не перетащил объект в inspector, ибо именно в этом случае модель и на команды реагировать не будет, и ошибки "NullReferenceException: Object reference not set to an instance of an object" не возникнет при отключении. И если это действительно так, то автор получит от меня жирный минус, ибо нефиг!
Нет, всё перемещено как надо
Цитата MANMANA ( ) Может быть, ты что-то не договариваешь, и тебе какие-то предупреждения движок выдает в консоли, о которых мы не знаем?
Да, но я не знаю, может быть это причастно к моей проблеме? Внизу выложил ошибку в консоли, и сообщение, которое выскакивает когда я ставлю галочку в инспекторе, и убераю
Ошибка:
Сообщение, когда убираю галочку:
И когда ставлю обратно:
Я делаю игры, а вы в них играете! :) Моя группа по созданию игр - www.vk.com/dzrone
|
|
| |
Левша | Дата: Суббота, 09 Августа 2014, 00:40 | Сообщение # 8 |
почти ветеран
Сейчас нет на сайте
| gameObject.SetActiveRecursively(true);
X.cor.R (Prologue)
|
|
| |
dzrone3488 | Дата: Суббота, 09 Августа 2014, 02:18 | Сообщение # 9 |
участник
Сейчас нет на сайте
| Цитата Левша ( ) gameObject.SetActiveRecursively(true);
Хорошо, скоро проверю. Уже вечер, наверно завтра проверю. Сейчас не могу
Я делаю игры, а вы в них играете! :) Моя группа по созданию игр - www.vk.com/dzrone
|
|
| |
MANMANA | Дата: Суббота, 09 Августа 2014, 10:33 | Сообщение # 10 |
почти ветеран
Сейчас нет на сайте
| Что ж, Левша рассмотрел самое главное, что Unity у него 3. версии Не зря почти ветеран.
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
dzrone3488 | Дата: Суббота, 09 Августа 2014, 21:17 | Сообщение # 11 |
участник
Сейчас нет на сайте
| Цитата Левша ( ) gameObject.SetActiveRecursively(true);
БОЛЬШОЕ СПАСИБО ТЕБЕ! Уже второй раз помогаешь. Теперь всё хорошо переключается! Но если тебе не трудно, что делает SetActiveRecursively конкретно. Просто не удобно что-либо писать, когда сам не знаешь что пишешь
Я делаю игры, а вы в них играете! :) Моя группа по созданию игр - www.vk.com/dzrone
|
|
| |
JonLivingston | Дата: Суббота, 09 Августа 2014, 21:58 | Сообщение # 12 |
почетный гость
Сейчас нет на сайте
| dzrone3488, http://docs.unity3d.com/352....ly.html
"Почему труднее всего на свете заставить птицу поверить в то, что она свободна?" - Ричард Бах Наша первая игра Dark Forest Let's play на Dark Forest
|
|
| |
Левша | Дата: Суббота, 09 Августа 2014, 22:08 | Сообщение # 13 |
почти ветеран
Сейчас нет на сайте
| Цитата dzrone3488 ( ) что делает SetActiveRecursively конкретно. Отключает обьект со всеми дочерними потрохами (составной обьект). Это все древние уже методы... Теперь все автоматизировали в 4 хх версиях.
X.cor.R (Prologue)
|
|
| |
|