请问一下各位大神是怎么组织游戏结构的?

如题,想问问,因为我们做的挂机游戏,我把游戏所有界面都放到一个场景里,但是界面多了以后,代码和节点组织起来感觉乱糟糟的,我们老板看了麒麟子大神的麻将项目里面的代理充值APP以后,叫我改成那个app那样,把所有界面分开,做成prefab,放在resources目录,需要哪个界面就动态加载哪个界面,甚至登录和创角色的场景也不要了,做成一个prefab的面板,统一由一个场景管理,不知道这样有没有问题?

因为本人对组织代码这一块没有任何经验(技术不够,只会写代码,设计模式和各个框架都没学习过),所以问问各位大神是怎么组织的:joy:

望不吝赐教,谢谢

不是大神回答你,没有问题,我们就是一个场景,多个 prefab。

你可以把场景当作 Window,在这个基础上实现自己的 MVC 模式。

有一个不好的地方就是,因为你是动态加载 prefab,需要小心处理内存管理的问题,这一块还很受限于引擎对内存管理的完善度。另外就是动态加载 prefab 会卡顿,这个需要你做类似场景切换的效果(渐入黑屏,加载等等)

我没记错的话,资源放在resources目录下会增大包体,而且jare大神说不利于json合并?不知道有什么影响?还是说影响不大?

有的,还有因为你放在 resources 下面,没有用到的资源引擎不会检测也会打包进去,所以要小心管理好项目,总之问题很多,但是不是没有办法解决。

卡顿只有第一次加载会卡顿吧?第二次加载因为有缓存了应该不会卡顿吧?因为游戏的每个导航界面就像是android的activity一样,如果切换的时候要等待的话好像不和情理

是的,难道你用完不需要释放吗?如果资源不多的话的确可以。

好的,多谢:slightly_smiling:

这就是关键所在,如果我释放了,第二次加载的时候会等待,这样不合情理啊,比如QQ或者微信这种软件,切换导航不需要等待吧?都是秒切,但是如果我不释放,内存这里又是个问题,我们项目不大,图片资源不到100MB,我们老板叫我不释放,缓存下来,下次用到这个界面的时候直接加到场景里

应用的内存占用不会像游戏这么重,并且 iOS 和 Android 都有提供内存警告的通知,做应用可以灵活很多,比如微信和 QQ 可以尽量缓存大量数据,在受到内存警告之后去释放缓存。

哦哦,多谢:slightly_smiling:

我现在就是一个场景管理若干个prefab 用的时候动态加载。不用了就释放掉。没什么问题.自己写个mvc注意各种prefab中不可用编辑器嵌套prefab,但是可以再perfab中动态加载prefab并使用,能用池尽量用池,用完注意释放

这样的设计,所有的资源都在resouces里了。根据不同的应用场景,设计多个场景也没什么问题吧

多谢回复,没问题就好:slightly_smiling: