在Unity 5中构建错误

时间:2015-03-17 17:16:42

标签: c# unity3d

我是编程的绝对初学者,我在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);
    }
}

我得到"错误cs0120非对象字段方法或属性需要对象引用"任何人都可以帮我解决这个问题吗?

THX!

1 个答案:

答案 0 :(得分: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);
    }