Unity中的碰撞器使用
- 介绍
- 种类
- 添加Rigibdody物理引擎
- 碰撞器代码
- 组件介绍
- Rigedbody
- box Collider
- 示例 / 练习:
- 感谢大家支持🌹
介绍
首先我们要知道什么是碰撞器,
就是我们在游戏编程中希望给某些物体添加物理引擎让他遵循物理规律,碰到一个物体会有什么变化。
接下来打开Unity,给创建的物体添加一个Cillder组件
种类
我们可以看到有很多碰撞器,所以我们需要根据情况添加不同的碰撞器,比如box collider(房子,车子,方块) sphere collider(足球,篮球等)
添加Rigibdody物理引擎
添加了碰撞器之后还需要添加一个Rigibdody组件,这个组件是用来给游戏对象添加物理引擎的,有了这个才能使碰撞器生效
碰撞器代码
如果我们想要在物体碰撞后执行什么操作可以在代码中编写,比如碰撞后我们希望他删除自身,就只需要给他加一个Destroy
private void OnCollisionEnter(Collision collision)
{
Destroy(collision.gameObject);
}
这个方法是碰撞器触发之后所执行的代码,不需要在写入Update或start方法中。
组件介绍
这两个组件就是碰撞所需的两个组件,其中
Rigedbody
Use Gravite根据是否需要重力选择勾选,如果是,那么物体会根据Mass(质量(若为0,依然不会下落))下落。
box Collider
如果希望此物体碰撞到物体之后有反弹等物理效果,那么不需要勾选Is Teigger.
如果希望此物体穿过别的物体那么可以将它勾选上,然后代码中方法改为
private void OnTriggerEnter(Collider other)
{
//在里面写你希望两个物体碰撞之后所发生的事,
//比如分数增加、生命减少、消除此物体等
}
如果Is Trigger勾选一定要用OnTriggerEnter方法,没有勾选一定用OnCollisionEnter,否则不会生效
示例 / 练习:
此物体为一个预制体,是个正方体,将他做成子弹的样子,然后添加组件,最后需要在上面添加脚本,然后给脚本上写如,碰撞之后删除子弹的代码(上面有写,但是建议自己动手。)
感谢大家支持🌹