分享

第三次作业设计文档

 IT菜鸟63svx2uw 2021-03-19

需求:

  • 两个以上UI界面
  • 运用Collider,Transform,Rigidbody,Ugui,摄像机等常用组件实现一个demo
  • 尽可能的不耗费性能

设计:

  • 实现一个3d版的吃豆子小游戏。
  • 敌人AI有巡逻和追捕player两种状态,player碰到游戏结束
  • player由w,a,s,d移动控制
  • 为了后续开发方便,代码会有封装重构,现在重构出UI,场景切换,后续还会重构AB打包,事件系统。

Demo:

一:主角移动:

使用的刚体方式移动,接受用户的输入,使用了正方体碰撞器,四元数旋转

二:敌人AI:

使用Navmesh来控制敌人的行动,避免障碍物。敌人在巡逻的时候速度更小,追捕的时候速度更大。敌人身上剔除了刚体组件,因为不需要。

三:事件:

还未实现监听器,先暂时的用着简单的事件。来监听player分数的变化

四:资源加载

暂时使用Resources,使用HashTable缓存加载的资源,还未整合Assetbundle。

五:场景切换:

第三次作业设计文档
使用状态机设计模式,都不继承MonoBehavior,提高性能,切换场景就是切换当前的场景状态。

六:UI管理:

第三次作业设计文档
UI分为三个类型,正常显示,显示后隐藏其他所有UI,和反向切换,我用模板设计出这三个类型接口,将公共的显示与隐藏,释放,初始化,更新等公共接口抽象于父类IUserInterface,UISystem是管理容器,对所有生成的UIFrm进行资源管理,UITool提供帮助方法,UIMaskMgr控制弹窗的遮罩。UIFactory是创建UIFrm工厂,通常都是创建出来建造然后交给System管理。可扩展,若有不同类型的UIFrm,可继承IUserInterface重写逻辑,避免修改其他类。
内存释放,交给UISystem管理类来单独释放某个UIFrm的资源或者全部释放,释放某个UIFrm的时候会销毁3d成像和代码引用。同时强转垃圾回收。
使用:利用泛型创建panel,同时传递动态参数,将显示与UI界面分离,即UI界面不挂任何一个脚本,UISystem内控制显示Panel的更新,可以自己改写一个游戏循环框架,配合UI。

GameManager:

中介者设计,单例,对外提供各个系统的核心方法,整体游戏都采用游戏循环模式设计。

第三次作业设计文档

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多