> 文章列表 > 11. unity 物理系统和碰撞检测+射击游戏案例

11. unity 物理系统和碰撞检测+射击游戏案例

11. unity 物理系统和碰撞检测+射击游戏案例

1. 物理系统

也就是在游戏场景中添加日常的重力,碰撞等到物理属性

1.1 刚体组件(Rigidbody)

给模型添加刚体组件后,模型会具备一些物理属性,比如重力,速度,加速度等,在属性窗口中点击Add Component,选择Physics->Rigidbody,如下图所示:添加刚体组件后,运行游戏,物体会做自由落体运动。
11. unity 物理系统和碰撞检测+射击游戏案例

1.2 碰撞体(Collider)

在unity中创建的标准模型是自带碰撞体组件的,这样物体之间发生接触后,会有碰撞阻挡的效果,不会发生穿透彼此的现象。如果是自己制作的模型导入到unity中使用,可能不带碰撞体组件,需要自己手动添加,添加方式和上述类同。在**Add Component -> Physics ->**中有多种碰撞体可选择,如:Box Collider(长方碰撞体),Sphere Collider(球形碰撞体),Capsule Collider(胶囊碰撞体),Mesh Collider(网格碰撞体)等。

1.3 反弹与摩擦

这两个物理属性是由物理材质进行设置的,可以鼠标点击右键选择创建物理材质,如下图所示:
11. unity 物理系统和碰撞检测+射击游戏案例
此时即可创建一个新的物理材质,在属性窗口中可以设置其动摩擦系数Dynamic Friction,静摩擦系数Static Fricition,反弹系数Bounciness。如下图所示:
11. unity 物理系统和碰撞检测+射击游戏案例

2. 碰撞检测

如果要实现两个物体的碰撞检测,那么两个物体必须都加入碰撞体组件,至少一个要加入刚体组件,其中一个物体的碰撞体组件开启Is Trigger属性,即碰撞触发器,如下图所示:
11. unity 物理系统和碰撞检测+射击游戏案例
当两个物体碰撞后,会在脚本中处理对应的函数,如下所示:

private void OnTriggerEnter(Collider other)
{Object.Destroy(this.gameObject);//碰撞后销毁自身Object.Destroy(other.gameObject);//碰撞后把对方也销毁}

3. 射击游戏案例

效果展示:

unity射击小游戏

持续更新中,请大家多多关注…