举例中均设刚体质量为 m=2.0f,力向量为 f=(10.0f,0.0f,0.0f)。
功能注解:ForceMode为枚举类型,用来控制力的作用方式,有4个枚举成员,在以下举例中均设刚体质量为m=2.0f,力向量为f=(10.0f,0.0f,0.0f)。
1)ForceMode.Force:默认方式,使用刚体的质量计算,以每帧间隔时间为单位计算动量。设FixedUpdate()的执行频率采用系统默认值(即0.02s),,则由动量定理
f•t=m•v
可得:10 * 0.02=2 * v1,从而可得v1=0.1,即每帧刚体在X轴上值增加0.1米,从而可计算得刚体的每秒移动速度为v2=(1/0.02)*v1=5m/s(即每秒刚体在X轴上值增加0.1米)。
2)ForceMode.Acceleration:在此种作用方式下会忽略刚体的实际质量而采用默认值1.0f,时间间隔以系统帧频间隔计算(默认值为0.02s),即
f•t=1.0•v
即可得v1= f•t=10 * 0.02=0.2,即刚体每帧增加0.2米,从而可得刚体的每秒移动速度为v2=(1/0.02)*v1=10m/s(即每秒刚体在X轴上值增加0.2米)。
3)ForceMode.Impulse:此种方式采用瞬间力作用方式,即把t的值默认为1,不再采用系统的帧频间隔,即
f•1.0=m•v
即可得v1=f/m=10.0/2.0=5.0,即刚体每帧增加5.0米,从而可得刚体每秒的速度为v2=(1/0.02)*5.0=250m/s(即每秒刚体在X轴上值增加5.0米)。
4)ForceMode.VelocityChange:此种作用方式下将忽略刚体的实际质量,采用默认质量1.0,同时也忽略系统的实际帧频间隔,采用默认间隔1.0,即
f•1.0=1.0•v
即可得v1=f=10.0,即刚体每帧沿X轴移动距离为10米,从而可得刚体每秒的速度为v2=(1/0.02)*v1=500m/s(即每秒刚体在X轴上值增加10.0米)。
实例演示:下面通过实例演示作用力方式ForceMode中各种作用力类型的使用。
using UnityEngine;
public class ForceModeExample : MonoBehaviour {
// A, B, C, D 为Trigger==true,位置都在(0,0,0)不受重力影响的动态刚体
public Rigidbody A, B, C, D;
//作用力向量
Vector3 forces = new Vector3(10.0f, 0.0f, 0.0f);
int frameCount;
void Start() {
// 初始化4个刚体的质量,使其相同
A.mass = 2.0f;
B.mass = 2.0f;
C.mass = 2.0f;
D.mass = 2.0f;
// 对A、B、C、D采用不同的作用力方式
// 注意此处只是对物体增加了1帧的作用力
// 如果要对刚体产生持续作用力请把以下代码放在FixedUpdate()方法中
A.AddForce(forces, ForceMode.Force);
B.AddForce(forces, ForceMode.Acceleration);
C.AddForce(forces, ForceMode.Impulse);
D.AddForce(forces, ForceMode.VelocityChange);
}
void FixedUpdate() {
frameCount++;
Debug.Log("frameCount: " + frameCount);
Debug.Log("ForceMode.Force作用方式下A每帧增加的速度:" + A.velocity + "," + A.position.x);
Debug.Log("ForceMode.Acceleration作用方式下B每帧增加的速度:" + B.velocity + "," + B.position.x);
Debug.Log("ForceMode.Impulse作用方式下C每帧增加的速度:" + C.velocity + "," + C.position.x);
Debug.Log("ForceMode.VelocityChange作用方式下D每帧增加的速度:" + D.velocity + "," + D.position.x);
Debug.Log("=======================================================");
}
}
从第2次FixedUpdate()开始得到应用力后结果,由于FixedUpdate()的执行间隔为0.02秒,执行50次(1/0.02)FixedUpdate()的时间为1秒,所以在第51次FixedUpdate()时x位置达到与速度相同的值
点击查看输出结果:
frameCount: 1
ForceMode.Force作用方式下A每帧增加的速度:(0.0, 0.0, 0.0),0
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.0, 0.0, 0.0),0
ForceMode.Impulse作用方式下C每帧增加的速度:(0.0, 0.0, 0.0),0
ForceMode.VelocityChange作用方式下D每帧增加的速度:(0.0, 0.0, 0.0),0
=======================================================
frameCount: 2
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.002
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.004
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.09999999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),0.2
=======================================================
frameCount: 3
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.004
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.007999999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.2
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),0.4
=======================================================
frameCount: 4
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.006
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.012
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.3
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),0.6
=======================================================
frameCount: 5
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.007999999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.016
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.4
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),0.8
=======================================================
frameCount: 6
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.01
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.02
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.5
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),0.9999999
=======================================================
frameCount: 7
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.012
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.024
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.6
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),1.2
=======================================================
frameCount: 8
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.014
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.028
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.6999999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),1.4
=======================================================
frameCount: 9
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.016
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.032
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.8
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),1.6
=======================================================
frameCount: 10
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.018
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.036
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),0.9
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),1.8
=======================================================
frameCount: 11
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.02
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.04
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),2
=======================================================
frameCount: 12
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.022
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.044
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.1
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),2.2
=======================================================
frameCount: 13
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.024
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.048
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.2
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),2.4
=======================================================
frameCount: 14
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.026
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.052
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.3
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),2.6
=======================================================
frameCount: 15
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.028
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.05600001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.4
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),2.8
=======================================================
frameCount: 16
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.03
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.06000001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.5
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),3
=======================================================
frameCount: 17
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.032
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.064
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.6
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),3.2
=======================================================
frameCount: 18
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.034
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.068
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.7
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),3.4
=======================================================
frameCount: 19
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.036
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.072
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.8
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),3.6
=======================================================
frameCount: 20
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.038
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.07600001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),1.9
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),3.8
=======================================================
frameCount: 21
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.04
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.08000001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),4
=======================================================
frameCount: 22
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.042
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.08400001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.1
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),4.2
=======================================================
frameCount: 23
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.044
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.08800001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.2
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),4.4
=======================================================
frameCount: 24
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.046
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.09200001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.3
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),4.6
=======================================================
frameCount: 25
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.048
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.09600001
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.4
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),4.8
=======================================================
frameCount: 26
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.05
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.5
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),5
=======================================================
frameCount: 27
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.052
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.104
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.6
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),5.199999
=======================================================
frameCount: 28
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.05400001
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.108
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.7
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),5.399999
=======================================================
frameCount: 29
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.05600001
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.112
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.799999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),5.599999
=======================================================
frameCount: 30
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.05800001
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.116
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.899999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),5.799999
=======================================================
frameCount: 31
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.06000001
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.12
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),2.999999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),5.999999
=======================================================
frameCount: 32
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.06200001
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.124
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.099999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),6.199998
=======================================================
frameCount: 33
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.064
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.128
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.199999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),6.399998
=======================================================
frameCount: 34
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.066
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.132
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.299999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),6.599998
=======================================================
frameCount: 35
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.068
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.136
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.399999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),6.799998
=======================================================
frameCount: 36
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.06999999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.14
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.499999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),6.999998
=======================================================
frameCount: 37
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.07199999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.144
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.599999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),7.199997
=======================================================
frameCount: 38
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.07399999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.148
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.699999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),7.399997
=======================================================
frameCount: 39
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.07599998
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.152
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.799999
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),7.599997
=======================================================
frameCount: 40
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.07799998
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.156
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.899998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),7.799997
=======================================================
frameCount: 41
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.07999998
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.16
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),3.999998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),7.999997
=======================================================
frameCount: 42
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.08199997
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1639999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.099998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),8.199997
=======================================================
frameCount: 43
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.08399997
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1679999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.199998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),8.399997
=======================================================
frameCount: 44
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.08599997
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1719999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.299998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),8.599997
=======================================================
frameCount: 45
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.08799996
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1759999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.399998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),8.799996
=======================================================
frameCount: 46
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.08999996
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1799999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.499998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),8.999996
=======================================================
frameCount: 47
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.09199996
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1839999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.599998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),9.199996
=======================================================
frameCount: 48
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.09399995
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1879999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.699998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),9.399996
=======================================================
frameCount: 49
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.09599995
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1919999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.799998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),9.599996
=======================================================
frameCount: 50
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.09799995
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1959999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.899998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),9.799995
=======================================================
frameCount: 51
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.09999994
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.1999999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),4.999998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),9.999995
=======================================================
frameCount: 52
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.1019999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.2039999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),5.099998
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),10.2
=======================================================
frameCount: 53
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.1039999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.2079999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),5.199997
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),10.39999
=======================================================
frameCount: 54
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.1059999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.2119999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),5.299997
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),10.59999
=======================================================
frameCount: 55
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.1079999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.2159999
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),5.399997
ForceMode.VelocityChange作用方式下D每帧增加的速度:(10.0, 0.0, 0.0),10.79999
=======================================================
frameCount: 56
ForceMode.Force作用方式下A每帧增加的速度:(0.1, 0.0, 0.0),0.1099999
ForceMode.Acceleration作用方式下B每帧增加的速度:(0.2, 0.0, 0.0),0.2199998
ForceMode.Impulse作用方式下C每帧增加的速度:(5.0, 0.0, 0.0),5.499997
ForceMode.VelocityChange作用方式下D每帧增加的速度:

本文详细分析了Unity物理引擎中ForceMode的四种力作用方式——Force、Acceleration、Impulse、VelocityChange,通过具体数学计算与实例代码展示了不同模式下刚体受力的运动特性,包括速度变化与位移累计效果。
7474

被折叠的 条评论
为什么被折叠?



