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

ArticulationBody.AddForceAtPosition

建议修改

成功!

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

关闭

提交失败

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

关闭

取消

切换到手册

声明

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

参数

force 世界坐标系中的力向量。
position 世界坐标系中的一个位置。
mode 要应用的力的类型。

描述

在特定position处应用force,从而对物体施加扭矩和力。

为了获得逼真的效果,position应大致位于关节体的表面范围内。这非常适合模拟爆炸。要创建逼真的爆炸,请在多个帧而不是只在一帧中应用力。请注意,当position远离关节体的中心时,施加的扭矩将变得不切实际地大。

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

ForceMode.Force 模式修改每秒线性速度和每秒角速度累加器,而ForceMode.Impulse 模式修改每步线性速度和每步角速度累加器。混合这两种力模式对关节体无效,只会导致应用线性速度累加器。

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

对关节体应用力将使该关节体唤醒。如果力的大小为零,则关节体不会唤醒。
测量单位 - N(牛顿)。

此方法不支持ForceMode.AccelerationForceMode.VelocityChange

其他资源:AddForceAddRelativeForceAddTorque.

using UnityEngine;
using System.Collections;

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