1、关于useGravity、isKinematic和velocity的使用注解
useGravity属性用来确定刚体是否接受重力加速度的感应
isKinematic属性用来确定刚体是否接受动力学模拟,包括重力感应、速度、阻力、质量等物理模拟
isKinematic=true:关闭物理感应
isKinematic=false:接受动力学模拟
2、关于Rigidbody中mass、density及scale之间的关系注解
#若在脚本中未使用Rigidbody.SetDensity(density:float)方法设置刚体的密度,则刚体的质量mass值为在Inspector面板中Mass的大小,此时mass与transform中的scale大小无关
#若在脚本中使用Rigidbody.SetDensity(density:float)方法设置了刚体的密度,则刚体的质量为mass=density*scale.x*scale.y*scale.z,而与Inspector面板中Mass的设置大小无关
#若在脚本中既设置了密度Density,又设置了质量mass,则刚体实际质量值要看脚本中代码执行的前后次序了。若先执行密度设置代码,再执行质量设置代码,则刚体质量便不与密度density及物体放缩值scale有关。相反,若先执行质量设置代码,再执行密度设置代码,则质量设置代码失效
#当两物体发生碰撞时遵守动量守恒定理,则m1*v1+m2*v2=(m1+m2)*v,其中速度v1,v2及v按运动方向分正负号
注意,使用SetDensity请先设定scale值再设置Density
3、关于作用力方式ForceMode的功能注解
ForceMode为枚举类型,用来控制力的作用方式,有4个枚举成员
①ForceMode.Force:默认,使用刚体的质量计算,以每帧间隔时间为单位计算动量
F*t=m*v
②ForceMode.Acceleration:忽略刚体的实际质量而采用默认值1.0f,时间间隔以系统帧频率间隔计算(默认0.02s),即:
f*t=1.0*v
③ForceMode.Impulse:此方式采用瞬间力作用方式,即把t的值默认为1,即:
f*1.0=m*v
④ForceMode.VelocityChange:忽略刚体的实际质量和系统的实际帧频间隔,即:
f*1.0=1.0*v
4、关于OnTriggerXXX和OnCollisionXXX的功能注解
#要激活OnTriggerXXX方法和OnCollisionXXX方法必须使移动的物体中含有Rigidbody组件