本学期的数据可视化课程提供了丰富的选题,我选择我比较感兴趣的游戏制作,使用Unity2020版本进行开发,在这个过程中学习收获了许多。
我的游戏视频已经更新到bilibili
https://www.bilibili.com/video/BV1a44y1B7Kj
如果想获得资源包以及教程的朋友可以一键三连支持下,俺就可以发给你哈哈哈
游戏简介
本游戏是在unity环境下开发编程的一款潜行类游戏,玩家将被送往废弃车间里执行一系列突击任务,潜入敌人的大本营并且需要玩家高度集中的去探索寻找所有的电脑控制台关闭激光红外线,在行走过程中玩家需要躲避动态摄像头的检测,否则会触发警报器,如果触发警报会被机器人发现,但若被发现,则玩家需要逃避所有机器人的追捕和射杀,最终寻到钥匙进入电梯后离开,则此次突击行动完美成功!
主要工作
* 布置灯光,警报灯,设置警报声
* 添加实时摄像头及实现旋转动画
* 添加摄像头探测功能,警报触发
* 添加激光警报装置及其闪烁和触发
* 游戏主角动画及其控制运动
* 捡起钥匙功能
* 添加摄像头探测功能,警报触发
* 添加激光警报装置及其闪烁和触发
* 添加自动门及其开关控制
* 添加电梯自动门及其要是钥匙控制摄像机动态跟随和视野调整
* 添加机器人及其状态
* 添加机器人发起警报功能
* 使用Navigation控制机器人的巡逻
* 控制机器人行走动画
* 控制机器人的AI追捕
* 添加机器人射击动画
* 添加机器人射击特效及其声音
* 机器人伤害控制
* 添加玩家生命线
* 添加游戏失败画面及音效
* 添加游戏成功以及音效
* 添加菜单界面
* 添加游戏帮助界面
* 关卡升级在于玩家生命值的降低以及机器人的行走速度加快,增加了突击任务实现的难度
游戏技术点
-敌人动作控制器* Navigation控制机器人的巡逻
* 巡逻状态
*射击状态
-实现逻辑
* Enemy Sight
* Enemy MOVE AI
* Enemy Shooting
* Enemy Animation
-敌人射击动作
* 射击特效
* 射击声音
遇到的一些问题以及解决方法
视频教程的第一集是游戏场景和灯光设定。但是很奇怪的一点就是,它一进去就是黑夜,这就使得光线的设定特别明显
而我。我的光非常强,就算我删掉了直射光,camera的天空盒还是很亮
分析原因:
Unity3D中虚拟环境由天空盒、环境光、环境反射以及场景中的光源共同构成。由于unity的场景默认就是一个有光的天空盒,就像我那样,所以我们需要把场景还原到最原始的状态
解决方式
1、关闭场景中的所有灯光。
2、进入Window->Lighting->Setting->Scene窗口。
3、设置Environment->Skybox Material参数为None,取消天空盒。
4、设置Environment->Environment Lighting->Ambient Color为黑色,将环境光设置为黑色。这里需要注意的是,当我们将天空盒取消后,环境光的来源将会变为颜色,如果我们设置了天空盒,并将环境光的来源设置为天空盒(Environment -> Environment Lighting -> Source -> Skybox),Ambient Color参数将会变为Intensity Multiplier(环境光强度),如果我们将强度调为0,会发现场景明显变暗。
5、设置Environment->Environment Reflections->Intensity Multiplier为0,将环境反射强度设置为0。环境反射也受来源的影响,当天空盒为空时,反射来源也为空,这时我们调这个参数其实是看不到效果的。如果我们设置一个天空盒,将环境光关闭,打开场景中的光源,我们在调节这个参数,会发现场景中的模型,接受不到光照的地方将会显示纯黑色。
按照上面的步骤做完,我们将会得到一个纯黑的场景,什么也看不到,如果我们反向操作,场景又会慢慢亮起来,这也就证明了Unity3D中虚拟环境由天空盒、环境光、环境反射以及场景中的光源共同构成这一结论。
The referenced script (keycard) on this Behaviour is missing!
预设脚本中脚本丢失,把脚本贴进预设的东西就好
第二种情况就是你脚本的大小写keycard和
public class keycard : MonoBehaviour 这句注意大小写
物体仍然能够穿墙而过-明明添加了mesh?
是因为物体本身加了is trigger,取消即可
OnGUIDepth changed: was 0 is 1. Event type was 0
Assets\AlarmLight.cs(17,9):错误CS0619:'Component.light'已过时:'Property light已弃用。改用GetComponent<Light>()(单位“可升级”
Unity3D 2020版本找不到Render Setting的问题
分析原因:
其实在Unity3D 5.0里面,对菜单进行了修改。以前的Render Setting的设置项移到了Windows-Lighting里面了。
如图,在game环境下我已经调整好了位置,但是在生成的exe环境下位置错乱
分析原因和解决方法:
这是因为锚点设置问题
如果你的背景是整张图,想要铺满,建议锚点为四方strech
如果你的部件在各个位置你就需要按照你的界面,比如说我的解释说明这个在右下角,于是我就把锚点设置为右下角