一. 环境
地图资源,包含了全地图以及灯光、天空盒子。
扩展部分。
不可穿透的部分需要在bake时设置为static。
二. 设置
1. 相机
1> 主相机
挂载控制视角的c#组件。
tag为maincamera,culling mask不渲染武器和UI。
2> 武器相机。
武器相机只渲染武器和UI。改变相应的layer和culling mask(没有需要自行添加)。
武器相机渲染,添加GUI组件。
3> 渐隐渐显
添加渐隐渐显物体,挂载渐隐渐显c#组件,添加GUI组件。
2. 动画
1> 敌人动画
创建动画融合树。
添加所有动画。
base layer中,any state连接dying(死亡)动画。表示在任何状态下敌人都会死亡。
shooting layer中,连接敌人举枪、射击、放下枪的动画。
gun layer中,连接敌人握枪动画。
parameter中创建六个变量。
2> 武器动画
通过在主角身上挂载的控制c#组件来切换不同的动画。
添加canvas,添加子物体BulletCount,BulletCount添加text组件来在游戏过程中显示当前子弹数量。(所有属性可调节,见下图,显示在右下角)
三. 人物
1. 主角
因为为第一人称,所以只需要手臂及枪的模型。在transform组件中设置显示位置。
挂载键盘输入、控制、生命值c#组件。
2. 敌人
使用AI,设置完成后必须bake。挂载状态切换、视野、射击、生命值、动画c#组件。
默认动画为站立状态。
控制点
由两个旗子来控制敌人固定巡逻的路线,设定起点与终点。
四. 代码实现
public类型变量可以在unity组件中修改。
所有代码均需在Start和Update函数中进行调用和初始化。
1. 相机及特效设置
GUITexture的Lerp函数必须在update函数中调用才有用
2> 主相机视野c#脚本
2. 主角
1> 存储变量c#脚本
2> 定义参数c#脚本
其余移动方法可自定义。
3. 敌人
4. GameController
标题:[转] Unity实践 --- 第一人称射击游戏_
作者:shirln
地址:/articles//10/29/1603932203583.html
-----------------------------
如未加特殊说明,此网站文章均为原创。
网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
公众号转载请联系网站首页的微信号申请白名单!
个人微信公众号 ↓↓↓