版本:Unity 6 (6000.0)
语言英语
  • C#

Rigidbody.AddForceAtPosition

建议修改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实阅读了用户提出的每个修改建议,并在适用的情况下进行更新。

关闭

提交失败

由于某种原因,您的修改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void AddForceAtPosition(Vector3 force, Vector3 position, ForceMode mode = ForceMode.Force);

参数

force 世界坐标系中的力向量。
position 世界坐标系中的位置。

描述

position 位置应用 force。结果将对物体施加扭矩和力。

为了获得逼真的效果,position 应该大致位于刚体的表面范围内。这最常用于爆炸。在应用爆炸时,最好在几个帧内而不是仅仅一帧内应用力。请注意,当 position 远离刚体中心时,所施加的扭矩将不切实际地大。

只能对活动刚体应用力。如果游戏对象处于非活动状态,AddForceAtPosition 不会产生任何效果。

默认情况下会唤醒刚体。如果力大小为零,则不会唤醒刚体。

有关 ForceMode 如何影响速度的更多信息,请参见 Rigidbody.AddForce

其他资源:AddForceAddRelativeForceAddTorque

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { void ApplyForce(Rigidbody body) { Vector3 direction = body.transform.position - transform.position; body.AddForceAtPosition(direction.normalized, transform.position); } }