Unity中关于作用力方式ForceMode的功能注解
来源:互联网 发布:android蓝牙接收数据 编辑:程序博客网 时间:2024/05/18 03:15
功能注解: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。
(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。
(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。
(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。
实例演示:下面通过实例演示作用力方式ForceMode中各种作用力类型的使用。
在这段代码中,首先声明了4个Rigidbody变量和一个Vector3变量,然后在Start方法中对4个刚体的质量都设为相同的值,并分别对4个刚体施加相同的力向量,但使用不同的作用方式。最后在FixedUpdate方法中分别打印出4个刚体的速度,如图10-21所示,对于输出结果的计算方法请参考功能注解部分。
- Unity中关于作用力方式ForceMode的功能注解
- Unity中关于作用力方式ForceMode的功能注解
- Unity中关于作用力方式ForceMode的功能注解
- Unity中关于作用力方式ForceMode的功能注解
- Unity中关于作用力方式ForceMode的功能注解
- Unity中的ForceMode——纠正《UnityAPI解析——陈泉宏》一书 关于ForceMode的注解
- unity回顾之力的四种ForceMode
- Unity碰撞检测中OnTriggerXXX和OnCollisionXXX的功能注解
- 爱的作用力
- 关于在SSM中使用注解的方式进行事务管理
- Unity 中关于获取到物体的方式
- Unity-Rigidbody【刚体】组件-Rigidbody.AddForce的ForceMode 力的模式
- 关于shell中常见功能的实现方式总结
- box2d 中,body的三种作用力效果--ApplyForce, ApplyImpulse, SetLinearVelocity
- 关于一个表关联两个表中之一的注解方式
- Unity中实现放大镜的功能
- [Unity] Unity中实现羽化功能的shader
- spring中aop的注解配置方式
- SPI---读写串行FLASH(STM32平台下)
- 【Android】怎么方便看GitHub上的ZXing源码与示例
- nowcoder Wannafly挑战赛1 B 【暴力 + 思维】
- java jdbc curd &&学习文档 [翻译]
- Hibernate
- Unity中关于作用力方式ForceMode的功能注解
- Android ANR源码原理分析
- 正则动态添加变量
- 51Nod-1183 编辑距离
- cordova插件
- IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder
- 例子---碰壁反弹
- 集合map 对集合map进行取值 遍历循环
- springmvc上传文件的三种方式