Премини към съдържанието
  • Добре дошли!

    Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

    Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

     

Грешка в програмата за движение на js - Unity3d


Препоръчан отговор

Здравеите, искам да ви помоля за малко помощ. Имам проблем с движението на човечето в Unity3d кодът за движението е на джава скрипт ето го и него:

private var moveX:float = 0;
 private var  moveY:float = 0;
 var  jumpForce:float=3;
 var  moveSpeed:float=20;
 function  FixedUpdate () {
 moveX = Input.GetAxis("Vertical")*moveSpeed;
 moveY = Input.GetAxis("Horizontal")*moveSpeed;
 rigidbody.velocty = transform.TransformDirection(Vector3(moveX,rigidbody.velocty. y ,moveY));
 if(Input.GetButtonDown("Jump")){
   rigidbody.velocty. y  +=jumpForce;
 }
}
 fu nction  Update(){

 transform.Rotate(Vector3(0,Input.GetAxis("Mouse X"),0));
}

 

дава ми тази грешка:

 

NullReferenceException: Object reference not set to an instance of an object
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)
Boo.Lang.Runtime.RuntimeServices.GetProperty (System.Object target, System.String name)
UnityScript.Lang.UnityRuntimeServices.GetProperty (System.Object target, System.String name)
Move.FixedUpdate () (at Assets/Scripts/Move.js:8)
 

Линк към коментара
Сподели в други сайтове

....

NullReferenceException: Object reference not set to an instance of an object

Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.String cacheKeyName, System.Type[] cacheKeyTypes, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)

Boo.Lang.Runtime.RuntimeServices.GetDispatcher (System.Object target, System.Object[] args, System.String cacheKeyName, Boo.Lang.Runtime.DynamicDispatching.DispatcherFactory factory)

Boo.Lang.Runtime.RuntimeServices.GetProperty (System.Object target, System.String name)

UnityScript.Lang.UnityRuntimeServices.GetProperty (System.Object target, System.String name)

Move.FixedUpdate () (at Assets/Scripts/Move.js:8)

 

Грешката Ви казва, че една от референциите, на която викате поле или метод е NULL - т.е. не е асоциирана със съществуващ обект. 

Ако съдя по реда, на който гърми, то един от обектите в извикването

rigidbody.velocty = transform.TransformDirection(Vector3(moveX,rigidbody.velocty. y ,moveY));

е NULL. Това може да са rigidbody (Подозренията ми падат върху този) или transform. Направете проверки от типа:

if (!rigidbody) {    console.log("rigidbody is NULL");}и if (!transform) {    console.log("transform is NULL");}

за да хванете кой е проблемния обект (напълно възможно е и двата да са NULL, понеже не виждам приложание код да ги ползва като параметри, нито да ги създава), който се чупи и да видите защо така се получава.

 

Поздрави !

Линк към коментара
Сподели в други сайтове

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

×
×
  • Добави ново...