unity 游戏制作大纲

开始界面

  1. 游戏数据的保存,和场景之间游戏数据的传递使用 PlayPrefabs;
  2. 场景的分类:
    2.1 开始场景
    2.2 角色选择界面
    2.3 游戏运行的实景,包括村庄、野兽等等

角色创建面板

使用 PlayPrefabs 创建预制体,然后再通过脚本实例化生成物体。
利用 PlayPrefabs 来记录选择的角色类型以及角色名字等信息。

游戏运行场景

角色系统

角色系统是最核心的一个部分.因为涉及很多状态的切换,并且还要多个脚本间协调运行,所以交换状态信息是很有必要的.一开始我没意识到这一点,所以花了特别多的时间来重构我的角色脚本.事实上,直到最后我都没能优化好,因为在这个地方卡太久了.其实学到这个程度,需要的不再是对API的掌握,而是代码系统的架构合理不合理.
虽然意识到这一点,但是确实对这个练习项目没有太多激情了.之后我要加强这方面的意识,适当地学习一下架构,如何更好地优化代码.

1. 角色移动和摄像机跟随

建立角色预制体,挂载角色的运动脚本,实现点击特效、主角朝向、主角移动等等各方面效果。
角色运动还有一个很关键的地方就是 Animation 的设置。这个暂时还没做,等做出来的时候专门写一篇博客记录一下.

摄像机跟随可以分为三个部分完成:
其一,摄像机设置与主角的固定视角。当不涉及旋转视角和拉近拉远操作时,摄像机以一固定的角度和距离跟随主角。
其二,摄像机拉近与拉远视角操作。
其三,摄像机旋转视角。旋转视角分为水平旋转和垂直旋转。

2. 角色攻击及使用技能

角色攻击有一些属性需要注意:

  1. 攻击间隔
  2. 攻击距离
  3. 攻击力度
  4. 攻击动画

使用技能也要按照上面的属性来分配.

任务系统

分为以下几个步骤:

1.创建任务NPC.任务NPC管理任务面板的出现和消失.
2.创建任务面板.任务面板的脚本分为接受任务,提交任务,关闭任务面板等功能.其中任务的接受和提交涉及到任务信息的改动,提交任务的奖励要求任务面板的脚本执行人物信息改变的函数.

背包系统

背包系统坑还挺多,专门写了一篇文章记录.这里我主要记录下背包系统的主要思路:

  1. 物品信息管理和录入;
  2. 创建背包和格子,以及物品的预制体,并绑上相应脚本.
  3. 脚本功能要细化和分离,如预制体脚本管理预制体自身的移动,格子脚本管理格子信息,背包脚本统筹整个全局.

商店系统

商店系统一个最重要的地方就是商品数据的导入.在这个项目中我们用txt来存储数据,并且用一个公有脚本读取数据入一个Info类中,这个类存储我们所有的商品信息.
商店系统的另一个地方就是商品信息的展示,包括在Game视图中展示商品图片和数据.这个项目要求商品信息在鼠标指向物品时出现,所以继承了一些接口去实现这个方法.

装备系统

装备系统和背包系统在脚本上有很多相似的功能,这样子反而会引发一些坑.如何处理几个代码之间的耦合是一个问题.当然,学习前期最重要的还是完成为主,不要去管太多的细节,等到整体的结构已经完成的时候再去完善细节.
项目中脚本主要是针对背包中装备的穿戴和卸下.在此处我遇到的有几个坑,那些坑我都写在了另一篇博客上面了.

技能系统

技能系统是一个和之前相比更麻烦的模块,而且这个模块也确实学到了很多新的东西.在这个模块中,我用到了比较多的动态加载的思路,包括:创建预制体,绑定脚本,寻找场景物体等等.同时,因为动态加载比较麻烦,所以还经常性需要判断是否成功,写了不少报错的代码.
技能系统的核心是以下几点:

  1. 技能面板的显示,老生常谈吧,根据不同的角色类型动态加载不同的技能预制体;
  2. 技能快捷键的设置,应用到了动态加载图片,射线穿透判断的思路.这里的射线穿透和之前背包物体的拖动有所不同,我额外写了一篇记录里面的问题.
  3. 技能系统最难的应该是技能的复杂度太大,当你按下一个技能的时候要判断这个技能的类型,根据技能的类型来实现不同的功能;还要判断释放技能的位置是否在怪物目标上.比如主动群体技能是要判断触发体是否触碰到怪物的.说起来不难,但是写起来比较复杂.(这一点很有必要写一篇笔记)

怪物系统

怪物系统在这个项目中其实只需要做到两点:

  1. 随机巡逻.
  2. 受伤反击.
    教程中为了处理这两点,使用了一个状态值来控制状态的改变.本质上,怪物与角色都是关于状态的切换问题,区别只是角色的状态切换更复杂一点.

猜你喜欢

转载自www.cnblogs.com/ChanWunsam/p/10018304.html