unity 简单通用游戏模式设计

好吧好吧,又谈到这个问题了,其实早就想写这个博客了,犹豫了很久。在设计游戏的时候我本人是很排斥什么游戏架构设计,mvc什么的,我只想立刻动手就把本身的游戏玩法最快的用代码敲出来,还不会出没法挽回的错误,那么下面的步骤能够帮助你构建一个简单的游戏模式架构。架构

一。首先是数据存储类,如GameManager,UIManager,SoundManager等这些类,这些类是不销毁的,因为这些类为物体组件,用普通的单例模式容易出现实例化的冲突,所以能够首先加载一个数据场景,间隔一段时间后加载第二个正式场景,之后最多的返回也只能返回到第二场景,这样就解决了冲突问题mvc

二。分场景控制类,每一个场景中有可能要进行不一样的复杂的控制,好比播放个动画,选择角色什么的。好比UI场景,该场景中主要以UI功能为主,设置音量,选择角色什么的,都在该场景中进行,所以能够用个UIScene类的作一些特殊的控制;正式游戏场景,好比在UI场景选择好了敌人,那么如今进入正式打击敌人,冒险什么的,能够创建一个PlayScene场景,该场景用来控制播放个动画次序什么的各类操做。函数

三。通用类的做用,好比UI控制中物体的隐藏与出现,跳转到另外一个场景的操做,销毁物体的操做这些能够用一个GeneralController的集成这些函数,而后做为组件的形式添加到须要的分场景的场景控制的物体上,这一点尤为对UGUI的添加事件颇有效。性能

四。观察者类与数据存储类的静态变量。好比游戏加载后要把当前的语言或者音量设置到相关物体上,那么寻找携带这些数据的Manange类的方式有自带的Find相关类;或者使用数据存储类的instance静态变量,判断该静态变量是否为真,若是为真,那么就说明该类的物体存在,直接调用该静态变量获取到相关须要的数据。所以相比较而言,使用instance静态变量更加可靠高效动画

五。查找多个物体的问题,为多个物体设置数据。这里涉及到在场景中寻找具备相同标签或者拥有相同组件的物体,这里最好的方式是为每一个相同组件的物体添加一个观察者组件,该组件用于当物体生成时,调用相关的管理类,将本身存放到管理类的存储列表中,这样管理类就不用在场景中使用FInd方法去寻找这些物体了。架构设计

六。对象池。这里并不是这篇博客主要内容,只是作个提醒,由于抛开性能问题,上面的的五条对通常游戏来讲足够了。对一些长期生成的物体如子弹等最好作成一个对象池,从而提升机器性能。设计

相关文章
相关标签/搜索