如何在(向后方向)向 Unity 中的移动物体施加力
How to add force in (backward direction) to an moving object in Unity
我有一个以恒定速度向前移动的播放器,并且我在该对象上附加了一个刚体。所以我希望当玩家与其他对撞机相撞时,应该对玩家施加一个力使其向后移动。下面是我的播放器附带的脚本。 print 语句正在执行,这意味着 Trigger 函数正在运行并且刚体已附加到播放器,但 addforce()
函数不起作用。
请帮助我。
void OnTriggerEnter(Collider obj)
{
if (obj.gameObject.name == "enemy")
{
if(gameObject.GetComponent<Rigidbody>())
{
print("force add");
gameobject.getcomponent<RigidBody>().AddForce (-transform.forward * 10f * Time.deltaTime);
}
}
}
好的,首先尝试应用更高的值,可能力太低了,因为它乘以 Time.deltaTime,这是低值:
.AddForce (-transform.forward * 10000f * Time.deltaTime);
第二次检查,如果您在代码中的任何位置使用 transform.position 更改播放器的位置。 (如果是,请粘贴这部分代码)
我有一个以恒定速度向前移动的播放器,并且我在该对象上附加了一个刚体。所以我希望当玩家与其他对撞机相撞时,应该对玩家施加一个力使其向后移动。下面是我的播放器附带的脚本。 print 语句正在执行,这意味着 Trigger 函数正在运行并且刚体已附加到播放器,但 addforce()
函数不起作用。
请帮助我。
void OnTriggerEnter(Collider obj)
{
if (obj.gameObject.name == "enemy")
{
if(gameObject.GetComponent<Rigidbody>())
{
print("force add");
gameobject.getcomponent<RigidBody>().AddForce (-transform.forward * 10f * Time.deltaTime);
}
}
}
好的,首先尝试应用更高的值,可能力太低了,因为它乘以 Time.deltaTime,这是低值:
.AddForce (-transform.forward * 10000f * Time.deltaTime);
第二次检查,如果您在代码中的任何位置使用 transform.position 更改播放器的位置。 (如果是,请粘贴这部分代码)