Пятница, 22 Ноября 2024, 12:14

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Теперь проблема с моделью[РЕШЕНО]
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" шарик или кубик переключается, а моя модель нет. Она даже не исчезает. А когда отключил в инспекторе (галочку убрал) он на нажатие, не реагирует и не появляется, что мне делать? Этот проект очень хочется до делать. help

Вот фото инспектора модели. (Вдруг надо)




Я делаю игры, а вы в них играете! :)
Моя группа по созданию игр - 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.'овца? хм... smile
Если да, то закинь кубик свой и шарик рядом с пушкой, посмотри шарик и кубик появляются у него в руке? S.W.A.T.-маг, а шо? smile
Если нет, смотреть нужно настройки объекта-родителя в Инспекторе.
Ну и напоследок я скажу: после 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 ()
судя по масштабу модельки.... Она у тебя на сцене видна?


Да, даже больше руки оказалась biggrin

Цитата 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. версии smile Не зря почти ветеран.

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

Последнее:

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

Как запатентовать, защитить техническое решение, игру, идею
dzrone3488Дата: Суббота, 09 Августа 2014, 21:17 | Сообщение # 11
участник
Сейчас нет на сайте
Цитата Левша ()
gameObject.SetActiveRecursively(true);


БОЛЬШОЕ СПАСИБО ТЕБЕ! Уже второй раз помогаешь. Теперь всё хорошо переключается! Но если тебе не трудно, что делает SetActiveRecursively конкретно. Просто не удобно что-либо писать, когда сам не знаешь что пишешь sad


Я делаю игры, а вы в них играете! :)
Моя группа по созданию игр - 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 хх версиях.
smile


X.cor.R (Prologue)
  • Страница 1 из 1
  • 1
Поиск:

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