Вторник, 16 Апреля 2024, 18:02

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Моб не видит игрока
Моб не видит игрока
wing13Дата: Суббота, 27 Апреля 2013, 15:47 | Сообщение # 1
участник
Сейчас нет на сайте
Всем привет!
В общем я не очень хороший кодер и возникла у меня такая проблема.
Я хочу что бы призрак кружился на месте и в случае, если он видит игрока, выпадала надпись "вас увидел призрак".
Призрак состоит из чаректер контроллера и трансформа.
Сейчас он просто кружится на месте, надпись не выпадает.
Заместо этого выпадает ошибка: NullReferenceException: Object reference not set to an instance of an object
Что не так?

Код
var speed : float = 3.0;
  static var mob_r: int=0;
   
  //Скорость поворота
  var rotateSpeed : float = 1.0;
     function Update ()  
{
         var controller : CharacterController = GetComponent(CharacterController);
          
         //Данные луча
         var fwd = transform.TransformDirection (Vector3.forward); //Направление луча - центр родительского объекта.
         var hit: RaycastHit;
          
         // Вращение
         transform.Rotate(0,rotateSpeed, 0);
          
         // Движение вперед
         var forward : Vector3 = transform.TransformDirection(Vector3.forward);
         controller.SimpleMove(forward);
          
         //Реакции моба
         if (Physics.Raycast (transform.position, fwd, hit, 5))  
         {
         if(hit.collider.name == "Player"){mob_r=1;}
         }
   
}
  //Надписи
  function OnGUI()
    {
     if (mob_r==1){GUI.Label(new Rect(550,530, 150, 20),"Вас увидел призрак");}
    }


Я вконтакте
Vanek333Дата: Суббота, 27 Апреля 2013, 17:18 | Сообщение # 2
был не раз
Сейчас нет на сайте
Может код удалил?проверь
nikДата: Суббота, 27 Апреля 2013, 18:22 | Сообщение # 3
just nik
Сейчас нет на сайте
может..
Код
var speed : float = 3.0;  
var mob_r: boolean=false;  
     
   //Скорость поворота  
   var rotateSpeed : float = 1.0;  
      function Update ()   
{  
          var controller : CharacterController = GetComponent(CharacterController);  
            
          //Данные луча  
          var fwd = transform.TransformDirection (Vector3.forward); //Направление луча - центр родительского объекта.  
          var hit: RaycastHit;  
            
          // Вращение  
          transform.Rotate(0,rotateSpeed, 0);  
            
          // Движение вперед  
          var forward : Vector3 = transform.TransformDirection(Vector3.forward);  
          controller.SimpleMove(forward);  
            
          //Реакции моба  
          if (Physics.Raycast (transform.position, fwd, hit, 5))   
          {  
          if(hit.collider.name == "Player"){mob_r=true;}  
          }  
     
}  
   //Надписи  
   function OnGUI()  
     {  
      if (mob_r){GUI.Label(new Rect(550,530, 150, 20),"Вас увидел призрак");}  
     }
@script RequireComponent(CharacterController)


BridgeGamingTeam
wing13Дата: Суббота, 27 Апреля 2013, 18:50 | Сообщение # 4
участник
Сейчас нет на сайте
Спасибо за ответы, но не помогло.
А помогло странное, я переименовал переменную forward там, где камент "//Движение вперед" и все заработало.
В общем магия и танцы с бубном.


Я вконтакте
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Моб не видит игрока
  • Страница 1 из 1
  • 1
Поиск:

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