2015-03-17 3 views
2

Я абсолютный новичок в программировании, и я стараюсь мою руку на Unity 5, но я получаю этот код ошибки всякий раз, когда я пытаюсь построить этот кодсборки в Unity 5

using UnityEngine; 
using System.Collections; 

public class PlayerController : MonoBehaviour 
{ 
    void FixedUpdate() 
    { 
     float moveHorizontal = Input.GetAxis ("Horizontal"); 
     float moveVertical = Input.GetAxis ("Vertical"); 

     Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical); 

     Rigidbody.AddForce(movement); 
    } 
} 

я получаю "error cs0120 требуется ссылка на объект для метода или свойства нестатического поля" может ли кто-нибудь помочь мне с этим?

Thx!

+0

Является ли ошибка указывать на определенную строку кода? –

+0

Извините, указывая на последнюю строку кода. –

+0

'GetComponent () .AddForce (движение);' – Fabricio

ответ

1

Предыдущая в Unity 5, "rigidBody" была собственностью GameObject. Ваш код еще не собрали, то пришлось бы быть:

gameObject.rigidBody.AddForce(movement); 

Поскольку rigidBody не является свойством или поля MonoBehavior, gameObject есть. Так как его не в Unity 5, вы должны будете использовать GetComponent:

RigidBody rb = GetComponent<RigidBody>(); 
rb.AddForce(movement); 

Смотрите документацию для более: Unity Docs

Когда его все сказано и сделано, то код будет:

void FixedUpdate() 
    { 
     float moveHorizontal = Input.GetAxis ("Horizontal"); 
     float moveVertical = Input.GetAxis ("Vertical"); 

     Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical); 

     RigidBody rb = GetComponent<RigidBody>(); 
     rb.AddForce(movement); 
    } 
+0

Я все еще получаю ошибку даже после того, как все делаю, как сказано. О чем эта ссылка, о которой говорит IDE? Не могли бы вы опубликовать, как будет выглядеть код после завершения? –

+0

@MiguelMelo Вы получаете ту же ошибку? Ошибка означает, что вы пытались получить доступ к свойству или методу, который не существует на неявной ссылке «this». Вы попробовали 'gameObject.GetComponent'? Я не помню, что это было необходимо, но у меня нет единства на этой машине, чтобы попробовать. – BradleyDotNET

+0

К сожалению, как я уже говорил, я новичок, поэтому я пока не понимаю весь формат и синтаксис. Мой код оказался очень близким к вашему, но после заявления addforce (motion) я повторил инструкцию rigidbody.addforce (motion). –