【和我一起学习Unity3D】初识物理系统

来源:互联网 发布:rsync ssh 端口 编辑:程序博客网 时间:2024/04/29 11:42
要让一个GameObject成为一个物理系统的成员,首先他必须是一个刚体(Rigidbody),然后,他必须有碰撞域(Collider)。
添加完这两个组件(Component)之后,值得注意的就是刚体的IsKinematic这个属性,这个属性是表示他的移动只能由脚本所控制,比如墙壁等,就需要勾上这个。
另外一个属性是碰撞域的IsTrigger,这个属性标志着这个GameObject的碰撞处理方式,勾上这个,说明这个物体的碰撞会触发
1.MonoBehaviour.OnTriggerEnter( Collider other )当进入触发器2.MonoBehaviour.OnTriggerExit( Collider other )当退出触发器3.MonoBehaviour.OnTriggerStay( Collider other )当逗留触发器

然后取消掉,碰撞会触发:
1.MonoBehaviour.OnCollisionEnter( Collision collisionInfo ) 当进入碰撞器2.MonoBehaviour.OnCollisionExit( Collision collisionInfo ) 当退出碰撞器.MonoBehaviour.OnCollisionStay( Collision collisionInfo )  当逗留碰撞器

关于这个,我看到一个博客说的很好:http://blog.csdn.net/Monzart7an/article/details/22739421
-------------------------------------------------------------------------------------------------
关于物体的力要在一个GameObject上添加一个力,首先这个GameObject必须是一个刚体(Rigidbody),然后在脚本中就可以这样写:
this.rigidbody.AddForce(Vector3.up * 5, ForceMode.Impulse);

第一个参数说明了添加的力的方向和力的大小,这个力是向上的,并且大小为5N。
然后第二个参数说明了这个力的类型,类型有三种,可以参照Unity圣典的解释:http://game.ceeger.com/Script/Enumerations/ForceMode/ForceMode.html
值得一提的是,这个力是相对于世界坐标系的,如果想要相对于物体本身的坐标系增加一个力,可以这样写:
this.rigidbody.AddRelativeForce (Vector3.up * 5, ForceMode.Impulse); 



0 0