Пятница, 29 Марта 2024, 04:52

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » NullReferenceException: Object reference not set to an insta (Помогите)
NullReferenceException: Object reference not set to an insta
alec5seiДата: Воскресенье, 18 Февраля 2018, 10:13 | Сообщение # 1
участник
Сейчас нет на сайте
Написал скрипт, что то типо простого магазина. А у меня выдает ошибку
Код
NullReferenceException: Object reference not set to an instance of an object
Store.DialogWindow (Int32 windowID) (at Assets/Scripts/Store.cs:22)
UnityEngine.GUI.CallWindowDelegate (UnityEngine.WindowFunction func, Int32 id, UnityEngine.GUISkin _skin, Int32 forceRect, Single width, Single height, UnityEngine.GUIStyle style) (at C:/buildslave/unity/build/Runtime/IMGUI/Managed/GUI.cs:1958)


Вот код где выдает ошибку:
Код
    void DialogWindow (int windowID)
    {
  GUI.Label(new Rect(5,0, windowRect.width, 10), "МАГАЗИН");

  if(GUI.Button(new Rect(5,30, windowRect.width - 10, 25), "Купить Аптечку"))
  {
   [b]HPAspirine = gameObject.GetComponent<Controller>().HPAspirine;[/b]
   HPAspirine = HPAspirine + 1;
   show = false;
  }

  if(GUI.Button(new Rect(5,60, windowRect.width - 10, 25), "Купить Еды"))
  {
   EdaFlo = gameObject.GetComponent<Controller>().EdaFlo;
   EdaFlo = EdaFlo + 1f;
  }



Не знаю что делать. Прошу помощи.
EdaFlo и HPAspirine это переменные float.




drcrackДата: Воскресенье, 18 Февраля 2018, 10:20 | Сообщение # 2
старожил
Сейчас нет на сайте
Очевидно что на этом обьекте (на котором висит этот скрипт) нет компонента Controller

Цитата
GUI.Button(new Rect(5,60, windowRect.width - 10, 25)

Ты когда вбиваешь в код размеры и положения обьектов, тебе самому не кажется, что ты что-то делаешь неправильно? :D
Ознакомься: https://unity3d.com/learn/tutorials/s/user-interface-ui
То что ты пишешь устарело лет на 5


Сообщение отредактировал drcrack - Воскресенье, 18 Февраля 2018, 10:28
alec5seiДата: Воскресенье, 18 Февраля 2018, 13:24 | Сообщение # 3
участник
Сейчас нет на сайте
Спасибо, ошибку устранил :D Но видимо я делаю что то не так.
Когда нажимаю на кнопку "купить аптечку" например, у меня не меняется значение в скрипте Controller.
А то что устарело.. Не знаю. Я начинающий) Тааак что, для меня все новое :)






Сообщение отредактировал alec5sei - Воскресенье, 18 Февраля 2018, 13:26
drcrackДата: Воскресенье, 18 Февраля 2018, 13:27 | Сообщение # 4
старожил
Сейчас нет на сайте
Цитата
у меня не меняется значение в скрипте Controller.

Ну так ты его и не меняешь) Ты копируешь значение в локальную переменную (или поле) и меняешь ее
А надо так:
Код

var controller = gameObject.GetComponent<Controller>();
controller.EdaFlo += 1f;


Сообщение отредактировал drcrack - Воскресенье, 18 Февраля 2018, 13:27
alec5seiДата: Воскресенье, 18 Февраля 2018, 13:55 | Сообщение # 5
участник
Сейчас нет на сайте
Во! Теперь все! Спасибо)



Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » NullReferenceException: Object reference not set to an insta (Помогите)
  • Страница 1 из 1
  • 1
Поиск:

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