Среда, 13 Ноября 2024, 10:46

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Взаимодействие двух скриптов.
MisterTimeChipДата: Среда, 19 Марта 2014, 17:56 | Сообщение # 1
частый гость
Сейчас нет на сайте
Добрый день. Я тут начал делать очень простой скрипт и столкнулся с проблемой.
Код
using UnityEngine;
using System.Collections;

public class PlayerManager : MonoBehaviour   
{

                   
   private ObjectManager ojm;

   public int playerDamge = 10;

   void Start ()   
   {
     
   }

   void Update ()   
   {
    if(Input.GetMouseButtonDown(0))
    {
     RaycastHit hit;
     Ray ray = Camera.main.ScreenPointToRay(new Vector3(Screen.width/2,Screen.height/2,0));
     bool isHit = Physics.Raycast(ray, out hit, 1000);
     if(isHit == true)
     {
      Debug.Log(hit.transform.tag);
     }

     if(hit.transform.tag == "Objectgame")
     {
                     //Отнимаю здоровье у объекта
      ojm.Health -= playerDamge;
                     //Здесь выдает ошибку.
     }
    }
     
   }
}


Данный скрипт бросает луч и должен наносить урон объекту с Тегом Objectgame

Код
using UnityEngine;
using System.Collections;

public class ObjectManager : MonoBehaviour {
     

   public int Health = 100;

   void Start ()   
   {
    Health = 100;
   }

   void Update ()   
   {
    if(Health < 0)
    {
     Destroy(gameObject);
    }
   }
}


Вот тут происходит уничтожение объекта если счетчик Health меньше нуля.
Но при попытке контакта луча с объектом выдает ошибку на 31 строчке т.е.
Цитата
NullReferenceException: Object reference not set to an instance of an object

Код
ojm.Health -= playerDamge;
Вот здесь


Надеюсь на скорую помощь, заранее благодарю.


Программист - не профессия. Это судьба.

Сообщение отредактировал MisterTimeChip - Среда, 19 Марта 2014, 17:56
RangerДата: Среда, 19 Марта 2014, 18:59 | Сообщение # 2
почти ветеран
Сейчас нет на сайте
Цитата MisterTimeChip ()
private ObjectManager ojm;

ojm у тебя null (не инициализирован)
нужно создать на сцене объект со скриптом ObjectManager и присвоить его ojm


MisterTimeChipДата: Среда, 19 Марта 2014, 19:03 | Сообщение # 3
частый гость
Сейчас нет на сайте
Цитата
ojm у тебя null (не инициализирован)
нужно создать на сцене объект со скриптом ObjectManager и присвоить его ojm


Спасибо, добрый человек!


Программист - не профессия. Это судьба.
  • Страница 1 из 1
  • 1
Поиск:

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