RPG游戏《黑暗之光》开发总纲

近期在学习RPG游戏《黑暗之光》的开发,列个总的逻辑路线和开发大纲,方便复习与检索。(更新完毕)

1.1 添加场景(环境、Camera、水面以及天空等物体的添加)
1.2 镜头拉近(控制Camera的Z轴移动和速度)
1.3 开始场景的UI界面(Sprite与素材的添加)

2.1 角色创建UI界面(Sprite的添加,其中输入框用Simple Input Field实现)
2.2 角色的创建与显示(添加两个可选角色的动画效果,通过当前角色的索引控制角色切换)

3.1 角色移动
3.1.1 点击地面效果(通过射线Ray与地面产生的碰撞点,记录碰撞点信息)
3.1.2 控制朝向 (通过碰撞点信息,调用LookAt()函数)
3.1.3 角色移动 (获取目标位置与当前位置的距离,并进行移动)

3.2 角色动画的改变(添加不同情况下的动画效果,在脚本中添加当前状态的标志位,控制不同情况下的动画播放)
3.3 相机跟随与镜头拉伸功能(获取相机与角色的偏移量,通过偏移量控制Camera的位置信息)

4.1 任务系统UI界面(任务NPC模型的导入与UI界面设计)
4.2 任务系统的接受与完成(初始任务描述的UI界面设计,点击接受或完成后的UI界面部分Sprite和Label的改变)
4.3 任务完成后的奖励(通过与存储角色信息的脚本进行交互,添加获得的奖励信息)

5.物品系统
5.1 各系统功能面板的创建(通过一个Invisible Widget存储状态、物品、装备、技能等系统按钮)
5.2 物品信息管理系统 (用txt存储物品信息,将物品id和其余信息info存入字典中,id作为存入和读取的索引)
5.3 物品栏的UI界面(新建网格Sprite存储物品,并根据网格信息实例化物品)
5.4 模拟拾取 (拾取过程:遍历物品栏,看是否存在该物品,若存在,num+1;不存在,查找新的网格,并实例化物品)
5.5 物品栏的显示与隐藏 (通过Unity自带的tween动画进入或离开视野)
5.6 鼠标放在物品上的信息显示(通过OnOver或者OnHoverOver判断鼠标是否在物品上,将鼠标的当前位置赋给信息显示框的Label位置,并在Update()中更新)


6.1 状态系统的UI界面
6.2 状态系统的访问与更改(将状态信息分为初始状态个增加状态,初始状态为角色的基础技能点,新增状态为角色的额外技能点,来自装备和升级赠送技能点数)

7.1 药品商店的UI界面(模型导入与UI界面设计)
7.2 药品的购买(与物品栏的交互以及金币的增减)


8.1 装备系统的UI界面(与5.1类似,都需要一些网格控制实例化信息)
8.2 装备信息管理系统(与5.2类似,多了适用角色和适用穿戴部位)
8.3 装备信息提示(与5.6类似,多了属性的显示)
8.4 右键的穿戴功能(首先排除无法穿戴的情况,如适用角色不对或装备类型不对,之后在装备栏中实例化并更新物品栏信息。装备卸下方法类似)
8.5 装备穿戴对属性的影响(与状态界面的交互)
 

9.1 技能信息管理系统(见5.1,读取操作见5.2)
9.2 装备系统的UI界面(用Scroll View和Invisible Widget存储,将单个技能做成Prefab,用Grid进行技能管理)
9.3 快捷方式与技能系统的交互(借助OnDragDropRelease判断当前快捷方式的标号并添加信息
9.4 人物等级对技能的影响(在单个技能的UI下添加一个遮蔽效果,通过当前等级与技能需求等级的大小关系显示或隐藏遮蔽效果,并决定是否禁用拖拽功能,在每次点击技能面板时调用)


10.主角状态信息界面与小地图 https://blog.csdn.net/s1314_JHC/article/details/80118360
10.1 主角状态信息界面(获取Camera下的主角Texture信息,并显示在UI中,通过layer控制Camera下的显示与隐藏)
10.2 小地图(与10.1类似)



11.装备购买、经验条以及环境碰撞器 https://blog.csdn.net/s1314_jhc/article/details/80148432

11.1 装备购买功能(结合药品商店和技能列表,通过grid动态添加)
11.2 经验条(利用Colored Progress Bar,与状态信息进行交互)

11.3 环境碰撞器(利用Cube实现)


12.怪物系统的实现 https://blog.csdn.net/s1314_JHC/article/details/80158558

12.1 怪物状态的切换(Idle, Walk, Attack, Death,通过这四个状态控制相应行动)

12.2 怪物受到攻击(扣血功能以及被击效果,被击效果通过Skinned Mesh Render实现,协程控制被击效果显示时间)
12.3 Miss效果(HUD Text插件,控制其文本和显示位置)
12.4 怪物的自动攻击(攻击状态分为普通攻击、疯狂攻击以及攻击休息间隔,根据攻击距离进行移动和攻击,并根据攻击时间切换攻击状态)


13.角色攻击系统的实现 https://blog.csdn.net/s1314_JHC/article/details/80158994

13.1 角色状态(分为行走、普通攻击和技能攻击)
13.2 攻击指针与攻击特效(特效通过在受到攻击时添加特效的prefab实现)
13.3 怪物的自动生成(设置当前怪物数量和最大数量,若当前<最大,生成怪物,并在怪物死亡时更新)
13.4 怪物死亡与状态的交互(死亡后交互:添加经验(PlayerStatus)、更新任务(BarNPC)、获取奖励(Inventory))


14.1 添加技能的特效、动画属性(SkillsInfo中添加特效名称、动画名称和动画持续时间,用字典存储动画名称和动画GameObject)
14.2 回复技能(按下技能键——>设置状态为施法,此时无法移动——>播放特效并计时——>计时结束改变状态并播放动画——>回复HP/MP)
14.3 Buff技能(按下技能键——>设置状态为施法,此时无法移动——>播放特效并计时——>计时结束改变状态并播放动画——>增加对应属性并计时——>持续时间结束后还原)
14.4 单体攻击功能(按下技能键——>修改鼠标为技能锁定图标——>判断是否点击敌人(射线检测)——>设置状态为施法,此时无法移动——>播放特效并计时——>计时结束改变状态并播放动画——>造成伤害)
14.5 群体攻击技能(按下技能键——>修改鼠标为技能锁定图标——>点击一个位置——>设置状态为施法,此时无法移动——>播放特效并计时——>计时结束改变状态并播放动画——>判断技能接触单位(运用collider)——>造成伤害)

15.受攻击效果及场景切换 https://blog.csdn.net/s1314_JHC/article/details/80182891

15.1 受击效果(参考12.2)
15.2 受伤及死亡效果(受伤时调用受击BeDamaged函数并更新FaceUI的显示,死亡时进行状态切换并禁用移动、攻击等功能)
15.3 界面切换(通过PlayerPrefs.Set进行名字、所选角色的信息存储, Application.LoadLevel ()进行场景切换)

若有开发新功能时再继续更新。


猜你喜欢

转载自blog.csdn.net/s1314_jhc/article/details/79944156