- A+
Unity引擎游戏
1.1、介绍
刚体【Rigibody】是Unity物理学模拟的一个重要的概念,它是指一个物体在受力的情况下,其外形、尺寸内部组织结构等都不受影响的一种特性。
1.2、刚体的添加与属性
①添加刚体(选中物体-->AddComponet-->输入rigidbody-->选择Rigidbody即可)
②刚体属性介绍
③刚体的常用方法
1、给物体施加一个三维向量的力【AddForce()方法】使用方法如:【this.GetComponet().AddForce(Vector3.up*10F)】。
2、将刚体移动到指定的方位【MovePosition()方法】使用方法如:【this.GetComponet().MovePosition(this.localPositon+Vector3.up)】。
3、实现一个爆炸力的效果【AddExplosionForce()方法】使用方法如:【this.GetComponet().AddExplosionForce(30F,this.localPosition,10F)】。
4、对物体进行强制休眠,则不参加物体的模拟计算,提高资源运用效率【Sleep()方法】使用方法如:【this.GetComponet().Sleep()】。
5、将处于休眠状态的刚体唤醒,重新加入物理的模拟计算中【WakeUp()方法】使用方法如:【this.GetComponet().WakeUp()】。
二、碰撞体与触发器
2.1、介绍
碰撞体是用于检测游戏场景中的游戏对象是否相互碰撞,基本功能是使得物体之间不能穿过,还可以用于检测某个对象是否触碰到了另一个对象。触发器是用于检测某个特定的游戏对象是否进入该区域,是碰撞体的一种属性。
2.2、碰撞体的属性
碰撞体主要包含6种碰撞体,如下:
①立方碰撞体【BoxCollider】、最为常用,最节省资源。
②球形碰撞体【SphereCollider】、常用于圆形物体上。
③胶囊碰撞体【CapsuleCollider】、常用于将囊体、圆柱体等模型上。
④网格碰撞体【MeshCollider】、可以无缝的贴合在模型的表面上,但是对系统的资源消耗最大,一般不建议使用。
⑤车轮碰撞体【WheelCollider】、一般用于车辆等模型上,对资源消耗也是很大,建议少用。
⑥地形碰撞体【TerrainCollider】、仅用于Terrain地形组件上。
2.3、碰撞体的碰撞检测事件函数
①碰撞进入检测函数【OnCollisionEnter()方法】。②碰撞停留检测函数【OnCollisionStay()方法】。③碰撞退出检测函数【OnCollisionExit()方法】。
2.3、碰撞体的触发检测使用场景:需要在场景中检测特定对象存在与否,一般使用触发器,触发器取消了碰撞体的阻挡效果,保留了碰撞事件函数功能。
①将碰撞体变为触发器的操作,只用勾选碰撞体的IsTrigger属性即可,如下所示:
②触发器的事件检测函数
1、进入触发检测【OnTriggerEnter()】。
2、停留触发检测【OnTriggerStay()】。
3、退出触发检测【OnTriggerExit()】。
注意:使用该触发器时,需要给主动去触发的物体添加刚体组件,取消重力,并且需要去触发的物体需要有碰撞体,如下所示: