我的Unity 3D之旅——第一人称射击游戏(1)

一、游戏策划

从本篇起,我们将进入实战环节,编写一个简单的第一人称射击游戏。在开始制作游戏之前,我们需要一份游戏策划。

1. 游戏介绍:游戏场景中,会有若干个敌人的出生点,定时生成一些敌人。敌人会寻找并攻击主角。游戏的目的就是生存并消灭更多的敌人。

2. UI界面:包括生命值、弹药数量、得分和准星。游戏失败后提供一个按钮重新开始游戏。

3. 主角:由于是第一人称射击游戏,主角本身不会出现在视野范围内。屏幕上能够看到的是一把端在胸前的M16机关枪。按键盘的W、S、A、D来控制主角前后左右移动,移动鼠标旋转视角,点击鼠标左键射击。

4. 敌人:敌人只有一种,具有智能寻路功能,可以躲避障碍物并攻击主角。

二、游戏场景

1. 在Assets目录下新建文件夹Scenes,将Unity创建的默认场景保存到Scenes文件夹下,并命名为demo.unity。

2. 导入美术资源(解压后复制到Assets目录下),将rawdata/Level目录下的level.FBX添加到游戏场景中。

3. 删除Unity自动创建的Directional Light,在菜单栏选择【GameObject】→【Light】→【Point Light】创建9个Point Light,均匀分布到level游戏体所在的空间,调节各自的灯光颜色、光照范围和光强。将每个光源的Baking属性设为Baked,以便进行灯光烘焙。

4. 选中level游戏体,在Inspector窗口中勾选Static选项将level游戏体设置成静态物体,以便进行灯光烘焙。(一定要勾选!没有设置成Static的物体不会参与灯光烘焙)

5. 在菜单栏选择【Window】→【Lighting】→【Scene】,勾选【Baked GI】。Baked Resolution和Baked Padding属性用于设置烘焙精度和烘焙像素间隔,值越大精度越高,需要的烘焙像素越多,需要的烘焙图数量可能也会增加。Compressed属性指示是否对最终生成的Lightmap进行压缩,可以大幅降低其大小,对于性能相对较差的硬件平台(比如手机)此项非常有用。Lighting窗口下方会显示出预计产生的Lightmaps的大小。点击Build开始烘焙灯光,等待烘焙完成。

6. 保持选中level游戏体,选择【Add Component】→【Rendering】→【Light Probe Group】为level添加一个Light Probe Group(灯光探测器组),使用【Add Probe】命令创建灯光探测器,修改其位置。在我们的游戏场景中,光影效果较为简单,因而可以采取均匀分布的方法。在复杂的游戏场景中,大量创建Light Probe会对性能造成较大影响,此时可以采取的方法是在光影变化较为丰富的地方较为密集地布置Light Probes,在其他地方较为稀疏地布置少量Light Probes。更多有关Light Probes的布置方法,可以参考Unity圣典中的有关内容。布置完的效果如下图所示。

 

7. 选择level游戏体下的三个模型,在Inspector窗口选择【Add Component】→【Physics】→【Mesh Collider】为它们添加多边形碰撞体。为了得到最精确的碰撞检测,可以直接使用模型本身进行碰撞检测,但因为在实际项目中,模型通常相对比较复杂,模型的外形多边形数量较大,这样做对性能会产生很大影响。比较常用的一种方法是使用一个与模型形状近似的碰撞模型,但尽可能简单,专门用来检测碰撞。这里我们就使用了这个技术。

游戏场景到此就基本建立完毕了。从下一篇起我们将为这个第一人称射击游戏添加主角和敌人,并编写相应的脚本代码。所有的脚本均使用C#编写,关于C#语言,推荐一本Karli Watson等的著作《Beginning C#》(C# 入门经典),由浅入深,讲得很细致也很全面。

  • 20
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: Unity游戏设计作业第一人称射击游戏是一个可以让玩家体验到身临其境的游戏。这款游戏使用Unity引擎进行开发,可以在社区网站CSDN上找到相关的学习资源和教程,以便学习游戏开发技术。 首先,为了实现第一人称视角,需要创建一个主角模型,并设置相机跟随主角的移动和旋转。可以通过Unity的脚本编程来实现主角、武器和敌人的交互。可以为主角添加移动、跳跃和开火等功能,通过键盘或鼠标控制主角的动作。 其次,设计游戏地图和场景。可以在Unity中创建不同的游戏场景,并添加地形、建筑物和障碍物等元素。场景设计要考虑到玩家的游戏体验和战斗策略,让玩家能够自由移动和探索。 然后,考虑敌人的AI设计。可以通过脚本编程实现敌人的巡逻、追击和攻击等行为。可以设置敌人的视野范围和攻击距离,使游戏具有挑战性和策略性。 此外,还可以添加一些特效和音效来增强游戏体验。例如,使用粒子系统来制作射击、爆炸和弹痕效果。还可以加入背景音乐和音效,为游戏增添氛围和紧张感。 最后,可以通过CSDN社区分享游戏开发经验和技巧。在CSDN上可以找到很多游戏开发相关的教程和资源,学习和探索Unity游戏开发的更多技术和方法。 总结起来,Unity游戏设计作业第一人称射击游戏是一个需要综合运用Unity引擎的各种功能和技术来实现的项目。通过合理的设计和开发,可以创建一个富有挑战性和创意的游戏,让玩家有身临其境的射击游戏体验。在CSDN这样的社区网站上可以找到很多学习资源和教程,帮助我们更好地实现游戏的开发和优化。 ### 回答2: Unity游戏设计作业是一门专注于学习和实践使用Unity引擎进行游戏设计的课程。第一人称射击游戏是这门课程中的一个常见项目,用于学习和实践如何在Unity中创建和设计高质量的射击游戏。 在这个项目中,我们通常会使用Unity的各种功能和工具来建立游戏的场景、角色、武器和敌人等元素。我们需要为角色设计一个简单的动作控制脚本,以便他们能够在游戏中行动、跳跃和射击。同时,我们还需要设置一些触发器来激活特定的游戏事件,例如开门、触发剧情等。 在游戏设计中,平衡性也是一个重要的考虑因素。我们需要确保游戏中的武器和敌人的属性能够相互匹配,以便玩家能够在游戏中体验到挑战和乐趣。此外,我们还可以添加一些特殊的能力和道具,如血包,增加游戏的多样性和趣味性。 作为一名Unity游戏设计的学员,我们还需要通过测试和调试来确保游戏的稳定性和流畅性。我们可以使用Unity的调试工具来查找和解决游戏中的bug和错误,并对游戏进行优化,以确保它能够在不同平台上运行。 最后,我们不仅要设计一个有趣和富有挑战性的游戏,还要学习如何将游戏发布和推广给更多的玩家。我们可以将游戏打包为可执行文件或者上传到游戏分享平台,与其他游戏爱好者交流并接受反馈。 总之,Unity游戏设计作业中的第一人称射击游戏是一项有趣且富有挑战性的项目,它不仅可以让我们学习和实践使用Unity的各种功能和工具,还能够培养我们的游戏设计和开发能力。通过这个项目,我们能够获得宝贵的经验,并为将来的游戏设计工作做好准备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值