内容来自这个网站http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/

,我选取了目前我看得懂的一些,翻译了:

1,避免素材分支:

所有的素材应该只有一个版本,比如prefab, scene, mesh。

2,每个成员必须有一个当前项目的备份来测试。

3,使用其他的关卡编辑工具来编辑关卡。

Unity不是一个完美的关卡编辑器。

4,使用XML来保存关卡信息,而不是scene。

5,考虑写一个通用的自定义属性面板

组织场景:

6,使用空的GameObject来做场景里的文件夹。

7,将修改后的prefabs和文件夹(空的GameObject)的位置设置为0,0,0。

8,将你世界的Y轴基础坐标设置为0,这样就让放置对象更加方便。

9,让每个界面都可以单独运行

这样会大大减少测试的时间,要做到所有的场景可以自己运行,需要完成以下两点:

1,当数据不存在时,能够提供虚拟的数据以供当前场景使用。

2,生成对象必须支持多个场景都可以加载,使用类似下面的习惯用法:

myObject = FindMyObjectInScene();

if (myObjet == null)

{

myObject = SpawnMyObject();

}

10,将角色和站立对象的pivots(中心点)设置在原点(左下),而不是中心位置。

这样更容易摆放和设置其位置。

11,将prefab用于所有对象。你的场景里面应该只有文件夹(空的gamobject)而不是prefab.甚至唯一的对象,只被使用一次也需要被设置为prafabs。这样就会使得改动不波及到场景。

12,将一些复杂的prefab拆分为几个单独的prefab,不要对已经初始化的对象再进行设置。

如果你有两种敌人,他们只有属性不一样,定义两种不一样的prefab给这种属性,然后再将它们引入,这样做的好处是:

1,修改某个对象,只需要修改一个地方。

2,修改不涉及scene。

13,将prefab和prefab链接起来,而不是instance和instance。

使用Unity做项目的时候,一些好的建议的更多相关文章

  1. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目 目录索引

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目(1)搭建MVC环境 注册区域 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目(2)创建 ...

  2. 循序渐进做项目系列(4)迷你QQ篇(2)——视频聊天!(附源码)

    一·效果展示 源码派送:MiniQQ1.1 文字聊天的实现参见:循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天 二·服务端设计 对于实现视频聊天而言,服务端最核心的工作就是要构造多媒 ...

  3. 循序渐进做项目系列(3):迷你QQ篇(1)——实现客户端互相聊天

    <循序渐进做项目系列迷你QQ篇>将陆续介绍客户端聊天,文件传输,加好友,群聊,包括语音聊天,视频聊天,远程桌面等等需求如何实现,感兴趣的朋友可以持续关注.考虑到某些需求较为复杂,本系列采用 ...

  4. 用eclipse做项目中常遇到的问题-如何创建并读取properties文件

    在用eclipse做项目开发的时候我们常常会将一些重要的内容写在配置文件里面, 特别是连接数据库的url,username,password等信息,我们常常会新建一个properties文件将所有信息 ...

  5. 循序渐进做项目系列(2):最简单的C/S程序——消息异步调用与消息同步调用

    上篇博客 循序渐进做项目系列(1):最简单的C/S程序——让服务器来做加法 实现了一个最简单的C/S程序,即让服务器来做加法.当时为了通俗易懂采用了消息异步调用的方式.今天我们要采用消息同步调用的方式 ...

  6. 【转】做产品VS做项目

    相关定义 根据GB/T19000—2008<质量管理体系基础和术语>,有以下定义 过程process 一组将输入转化为输出的相互关联或相互作用的活动 注:一个过程的输入通常是其他过程的输出 ...

  7. 做项目单个功能的时候要理解需求和sql语句。

    做项目单个功能的时候要理解需求和sql语句.最好直接按照给出来的sql语句或者存储过程来写,避免有极其细微的差别所造成的不同. 做宜春国税二期的时候有个功能叫夜间开票情况,钻取明细时由于没理解sql语 ...

  8. Unity做AR

    Unity做AR呢这里借助了高通的AR包 这里是视频教程  http://www.tudou.com/programs/view/dnvEbIubNzI/ 这里是结果演示  http://www.tu ...

  9. 用.NET CORE做项目,VS里编译碰到‘。。。。包降级。。。。’错误

    用.NET CORE做项目,VS里编译碰到‘....包降级....’错误 本地开发机:WIN10+VS2017 15.7.3 ,用CORE2.1版本的建立一个项目,做好了,传到gitee上 今天有新同 ...

随机推荐

  1. tomcat8.5配置优化

    1.应用程序安全&关闭自动部署 默认值: <Host name="localhost" appBase="webapps" unpackWARs= ...

  2. 【CSS】等高布局

    1. 负margin:   margin-bottom:-3000px; padding-bottom:3000px; 再配合父标签的overflow:hidden属性即可实现高度自动相等的效果.   ...

  3. vue短信验证码组件

    Vue.component('timerBtn',{ template: '<button v-on:click="run" :disabled="disabled ...

  4. QT学习之QT判断界面当前点击的按钮和当前鼠标坐标

    1.QObject::sender( ) 返回发送信号的对象的指针,返回类型为QObject* .可使用qobject_cast动态类型转换成对应的发送信息的对象(对象类的基类中需要有QObject) ...

  5. MAC卸载/删除 Parallels Desktop虚拟机的方法

    一些MAC用户在自己的电脑上安装了虚拟机之后,想要将它卸载,但是不知道该怎么做.今天小编就为大家带来了这个问题的解决方法. 解决方案(删除/卸载虚拟机 (VM): 1.启动Parallels Desk ...

  6. Linux内存管理 - buddy系统

    本文目的在于分析Linux内存管理机制中的伙伴系统.内核版本为2.6.31.1. 伙伴系统的概念 在系统运行过程中,经常需要分配一组连续的页,而频繁的申请和释放内存页会导致内存中散布着许多不连续的页, ...

  7. Http之基础

    简介 HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准. HTTP是一个基于TCP/I ...

  8. Linux 性能检查常用命令

    ####消耗CPU最多的进程 [root@Yong ~]# ;|head ##拼接进程号 [root@Yong ~]# |awk '{print $1}' |awk BEGIN{RS=EOF}'{gs ...

  9. Java的“Goto”与标签

    goto在Java中是一个保留字,但在语言中并没有用到它:Java没有goto.但是,Java也能完成一些类似于跳转的操作,主要是依靠:标签. 为什么要使用标签 在迭代语句中,我们可以使用break和 ...

  10. 交换机基础配置之stp生成树实验

    实验的要求是以上面的拓扑图为例,查看当前根桥的所在并把三成交换机switch1指定为根桥 我们可以用show spanning-tree来查看stp的信息 输入后会显示两部分 上面一部分为当前交换机自 ...