[转] Unity实践 --- 第一人称射击游戏_
原文链接:https://blog.csdn.net/aprgopaiog/article/details/89604274
一. 环境
地图资源,包含了全地图以及灯光、天空盒子。
扩展部分。
不可穿透的部分需要在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#组件。
通过在主角身上挂载的控制c#组件来切换不同的动画。
添加canvas,添加子物体BulletCount,BulletCount添加text组件来在游戏过程中显示当前子弹数量。(所有属性可调节,见下图,显示在右下角)
三. 人物
1. 主角
因为为第一人称,所以只需要手臂及枪的模型。在transform组件中设置显示位置。
2. 敌人
使用AI,设置完成后必须bake。挂载状态切换、视野、射击、生命值、动画c#组件。
默认动画为站立状态。
控制点
由两个旗子来控制敌人固定巡逻的路线,设定起点与终点。
四. 代码实现
public类型变量可以在unity组件中修改。
所有代码均需在Start和Update函数中进行调用和初始化。
1. 相机及特效设置
1> 渐隐渐显特效c#脚本
GUITexture的Lerp函数必须在update函数中调用才有用
2> 主相机视野c#脚本
3> 武器相机十字准星c#脚本
4> 武器特效c#脚本
2. 主角
1> 存储变量c#脚本
2> 定义参数c#脚本
3> 玩家控制c#脚本
其余移动方法可自定义。
4> 主角生命值c#脚本
3. 敌人
1> 切换敌人状态c#脚本
2> 敌人视野c#脚本
3> 敌人射击c#脚本
4> 敌人生命值c#脚本
5> 敌人动画切换c#脚本
4. GameController
1> 用户自定义物体及输入c#脚本
标题:[转] Unity实践 --- 第一人称射击游戏_
作者:shirln
地址:https://www.mmzsblog.cn/articles/2020/10/29/1603932203583.html
如未加特殊说明,文章均为原创,转载必须注明出处。均采用CC BY-SA 4.0 协议!
本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!
