欢迎来到淼淼之森的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

[转] Unity实践 --- 第一人称射击游戏_

  |   0 评论   |   0 浏览

原文链接:https://blog.csdn.net/aprgopaiog/article/details/89604274

一. 环境

地图资源,包含了全地图以及灯光、天空盒子。

扩展部分。

不可穿透的部分需要在bake时设置为static

二. 设置

1. 相机

1> 主相机

挂载控制视角的c#组件。
tag为maincamera,culling mask不渲染武器和UI。

2> 武器相机。

武器相机只渲染武器和UI。改变相应的layer和culling mask(没有需要自行添加)。

武器相机渲染,添加GUI组件。

挂载十字准星c#组件。

3> 渐隐渐显

添加渐隐渐显物体,挂载渐隐渐显c#组件添加GUI组件

2. 动画

1> 敌人动画

创建动画融合树。

添加所有动画。

base layer中,any state连接dying(死亡)动画。表示在任何状态下敌人都会死亡。

shooting layer中,连接敌人举枪、射击、放下枪的动画。

gun layer中,连接敌人握枪动画。

parameter中创建六个变量。

2> 武器动画

武器挂载特效c#组件

通过在主角身上挂载的控制c#组件来切换不同的动画。

添加canvas,添加子物体BulletCount,BulletCount添加text组件来在游戏过程中显示当前子弹数量。(所有属性可调节,见下图,显示在右下角)


三. 人物

1. 主角

因为为第一人称,所以只需要手臂及枪的模型。在transform组件中设置显示位置。

挂载键盘输入控制生命值c#组件。

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 协议

本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。若本站转载文章遗漏了原文链接,请及时告知,我们将做删除处理!文章观点不代表本网站立场,如需处理请联系首页客服。
• 网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
• 公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜爱上游戏开发