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);
}