在学习Unity中看到关于如何控制主角移动的视频,里面的脚本是这么写的
void Update(){
float horizontal_move = Input.GetAxis("Horizontal");
this.rigidbody.AddForce(new Vector3(horizontal_move,0,0));
}
但在Unity5.0中,显示错误“UnityEngine.Comonent”不包含“AddForce”的定义,并且找不到可接受类型为“UnityEngine.Component”的第一个参数的扩展方法“AddForce”。应该是在该脚本中找不到该对象的rigidbody组件。(想了半天不知道为什么= =!)
所以呢,采用GetComponent方法得到该组件
void Update(){
float horizontal_move = Input.GetAxis("Horizontal");
Rigidbody body = GetComponent<Rigidbody>();
body.AddForce(new Vector3(horizontal_move,0,0));
//this.Getcomponent<Rigidbody>().AddForce(new Vector3(horizontal_move,0,0));
}
更好的写法应该是把获取component的引用写在初始化中,这里就不赘述了。