ArticulationBody.AddForceAtPosition

切换到手册

声明

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

Did you find this page useful? Please give it a rating: