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