【Unity3D游戏开发】之游戏目录结构之最佳实践和优化 (十一)
游戏目录结构之最佳实践
前置条件
1.多人协作开发,git管理
2.游戏不大,所有Scene合并到一起Scene中,eg.RoleScene、MapScene、StoreScene
3.Master一人管理Scene,防止多人修改产生主场景(二进制)产生冲突
目标
1.多人并行开发,互不干扰影响
2.主场景在完美情况下,只在第一次分派目录的结构的时候由Master修改一次,以后不需要任何修改
开发过程
目录结构如图:
1.Hierarchy的目录结构,三个场景RoleScene、MapScene、StoreScene分别由三个空节点管理,坐标清0,目录下是每个界面的预制体
2.每个非动态加载的预制体放置到Dev-perfab目录,需要动态加载的放到Resources/perfabs目录,游戏打包时会将Resources/perfabs目录下所有的perfab预制体打包到游戏中(包括不用的),而其余目录的预制体只有场景中用到的才会被打包。
3.多人协作开发测试
因为最终我们将所有的Scene都合并到GameScene中,但是开发过程 并不这么做,分别建RoleScene、MapScene、StoreScene,开发过程中每人一个场景分别开发测试预制体。
4.所有的Scene都在一个场景中,UI叠加到一起比较混乱,在开发时,可以隐藏根节点,方便开发。
注意开发细节
1.预制体目录清0
坐标统一Reset,layer选UI
2.预制体根节点结构
包含UIPanel和UIAnchor(为了多分辨率下和屏幕对齐的),【Ui Camera】属性选None
总结
没有完美的开发方案,只有最合适的开发方案,目前开发方案的缺点:
1.因为所有场景合并到一起,最终只有一个Scene,导致场景加载慢
2.所有UI在一个场景中,开发时各个场景UI叠加,只能隐藏别的UI界面再开发指定界面,在游戏巨大,UI界面非常多的情况下不适合。
【Unity3D游戏开发】之游戏目录结构之最佳实践和优化 (十一)的更多相关文章
- [libGDX游戏开发教程]使用libGDX进行游戏开发(1)-游戏设计
声明:<使用Libgdx进行游戏开发>是一个系列,文章的原文是<Learning Libgdx Game Development>,大家请周知.后续的文章连接在这里 使用Lib ...
- magento开发手册之目录结构
magento是一个很优秀的电商系统,很多朋友会用它部署自己的电商网站,少不了二次开发.下面我们随着ytkah来一起认识一下magento开发手册之目录结构吧. /app – 程序根目录 /app/e ...
- Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节
声明: 本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ...
- Unity3D游戏开发之游戏读/存档功能在Unity3D中的实现
喜欢我的博客请记住我的名字:秦元培,我的博客地址是:http://qinyuanpei.com 转载请注明出处,本文作者:秦元培, 本文出处:http://blog.csdn.net/qinyuanp ...
- JavaFX横幅类游戏开发 教训 游戏贴图
上一节课,我们即将完成战旗Demo有了一个大概的了解.教训这,我们将学习绘制游戏地图. 由于JavaFX 2.2中添加了Canvas相关的功能,我们就能够使用Canvas来实现游戏绘制了. 游戏地图绘 ...
- java游戏开发杂谈 - 游戏物体
现实生活中,有很多物体,每个物体的长相.行为都不同. 物体存在于不同的空间内,它只在这个空间内发生作用. 物体没用了,空间就把它剔除,不然既占地方,又需要花精力管理. 需要它的时候,就把它造出来,不需 ...
- java游戏开发杂谈 - 游戏编程浅析
每个游戏,你所看到的它的一切,都是计算机画出来的! 地图是画出来,人物是画出来的,树木建筑是画出来的,菜单按钮是画出来的,滚动的文字.闪烁的图标.云雾烟火,都是画出来的. 游戏编程,所要做的,就是控制 ...
- iOS开发总结——项目目录结构
1.前言 清晰的项目目录结构有利于项目的开发,同时也是软件架构的一部分,所以,项目开发之初搭建项目的目录结构很重要.刚转iOS时,自己并不知道如何搭建App的项目目录,在参与开发两个应用后,结合Web ...
- FXGL游戏开发-JavaFX游戏框架
FXGL 是一个JavaFX 游戏开发的框架,这个框架有两个版本,其中基于JDK1.8的版本已经不再维护,目前最新的是基于JDK11的版本,也就是Openjfx的版本. FXGL 提供了各种游戏范例: ...
随机推荐
- Next
https://code.google.com/p/ik-analyzer/downloads/list IK Analyzer
- PHP魔术方法使用总结
魔术方法是PHP面向对象中特有的特性.它们在特定的情况下被触发,都是以双下划线开头,你可以把它们理解为钩子,利用模式方法可以轻松实现PHP面向对象中重载(Overloading即动态创建类属性和方法) ...
- Java Web(转)
struts2+spring+hibernate 上传文件 关 键字: s2sh 上传文件 struts2 spring hibernate 前段时间,我用struts2.1.6.spring2.5. ...
- PHP 上传大文件
- 14交互活动:XHTML表单
表单基本上就是带有一块输入信息区域的网页.当提交表单时,表单中的信息被打成一个数据包发送给web服务器,web应用程序对之经行处理.处理完成后,可以获得另一个相应页面. 使用<form>元 ...
- DevExpress GridView中加入CheckBox方法
添加一列,FieldName为 "check",将ColumnEdit 设置为 复选框 样式.gridview1 editable设置为true 将要绑定的DataTable添加列 ...
- [转]如何将SQL Server表驻留内存和检测
注意这个功能在SQL2005后已经废弃,因为SQL2005会自动管理哪些表常驻内存. 将SQL Server数据表驻留内存是SQL Server提供的一项功能,在一般小型系统的开发过程中估计很少会涉及 ...
- gradlew解决jar或class冲突
以LeanCloud的推送sdk为例. 我的项目中使用了android-async-http库和fastjson的库,然后LeanCloud的的sdk中也使用了这两个库,但是版本有点低. 处理方式: ...
- Extjs 表格横坐标显示问题
在项目中显示chart时,当横坐标的标签名称过长时,extjs会自动隐藏部分的标签. 我想,如果能让标签斜着,或者纵向显示的话,就能够节省x轴上的长度. 经过在网上查找,解决方案如下. //在表格的a ...
- .NET中string[]数组和List<string>泛型的相互转换以及Array类的Sort()方法(转)
从string[]转List<string>: " }; List<string> list = new List<string>(str); 从List ...