Unity3d 刚体。移动位置不起作用

Unity3d 刚体。移动位置不起作用,unity3d,unityscript,Unity3d,Unityscript,错误是 Unity.Engine.Component does not contain a definition for MovePosition and no extension method MovePosition accepting a first argument of type Unity.engine.Component could be found. 此功能旨在延迟射弹从枪中射出后的移动时间 public class Projetil2 : MonoBehaviour

错误是

Unity.Engine.Component does not contain a definition for MovePosition 
and no extension method MovePosition accepting a first argument of type  
Unity.engine.Component could be found.
此功能旨在延迟射弹从枪中射出后的移动时间

 public class Projetil2 : MonoBehaviour {

// Use this for initialization
void FixedUpdate()
{
    rigidbody.MovePosition(transform.position + transform.rotation     
      *Time.deltaTime);
}
}
transform.position是矢量3,transform.rotation是四元数。不能将向量3和四元数相加

你可以这么做

rigidbody.MovePosition(transform.position + transform.forward * Time.deltaTime);
此外,您不能再在Unity 5中直接访问刚体。您需要像这样使用getComponent

Rigidbody rbd = GetComponent<Rigidbody> ();
rbd.MovePosition(transform.position + transform.forward * Time.deltaTime);

基本上,要使用任何组件的方法,都应该有该对象的引用。首先,相应地声明一个刚体/刚体2d对象

 RigidBody rBody;
    void Awake()
    {
     rBody = GetComponent<RigidBody>();
    }

是否正在使用GetComponent.MovePosition。。。工作继承的rigidbody MonoBehavior变量在Unity 5中被删除。我得到另一个错误,它说getComponent需要对对象的引用。你是对的。向前,不是。旋转。你在玩游戏的时候或者在编译时会遇到这个错误吗?编译时间=游戏无法编译时。。。。
 RigidBody rBody;
    void Awake()
    {
     rBody = GetComponent<RigidBody>();
    }
void FixedUpdate()
{
    rBody.MovePosition(transform.position + transform.rotation     
      *Time.deltaTime);
}