深圳Unity3D培训
达内深圳龙华中心

150-1322-7143

热门课程

成为Unity3d开发工程师需要具备的技巧

  • 时间:2018-01-19
  • 发布:深圳达内Unity3d培训
  • 来源:达内新闻

很多刚开始学习Unity3D的朋友,不明确自己到底掌握了什么技巧,下面深圳达内Unity3d培训的小编根据自己的经验分享10个Unity3d开发应该具备的技巧,关于这些技巧可能不适用于每个项目,大家要根据情况取材哦。

技巧一:使用外部的关卡编辑工具

Unity不是一个完美的关卡编辑器。例如,我们使用TuDee来创建3D Tile-Based的游戏,这使我们可以获得对Tile友好的工具的益处(网格约束,90度倍数的旋转,2D视图,快速Tile选择等)。从一个XML文件来实例化Prefab也很简单。详见Guerrilla Tool Development。

技巧二:编写通用的自定义Inspector代码

实现自定义的Inspector是很直截了当的,但是Unity的系统有很多的缺点:

它不支持从继承中获益;

它不允许定义字段级别的Inspector组件,而只能是class类型级别。举个例子,如果没有游戏对象都有一个ScomeCoolType字段,而你想在Inspector中使用不同的渲染,那么你必须为你的所有class写Inspector代码。

技巧三:尽量减少使用GUI组件的offset

通常应该由控件的Layout父对象来控制Offset;它们不应该依赖它们的爷爷节点的位置。位移不应该互相抵消来达到正确显示的目的。做基本上要防止了下列情况的发生:

父容器被放到了(100,-50),而字节点应该在(10,10),所以把他放到(90,60)[父节点的相对位置]。

这种错误通常放生在容器不可见时。

技巧四:避免Assets分支

所有的Asset都应该只有一个唯一的版本。如果你真的需要一个分支版本的Prefab、Scene或是Mesh,那你要制定一个非常清晰的流程,来确定哪个是正确的版本。错误的分支应该起一个特别的名字,例如双下划线前缀:__MainScene_Backup。Prefab版本分支需要一个特别的流程来保证安全

技巧五:使用安全的流程来处理Prefab分支

我们用一个名为Player的Prefab来讲解这个过程。

用下面这个流程来修改Player:

复制Player Prefab;

把复制出来的Prefab重命名为__Player_Backup;

修改Player Prefab;

测试一切工作正常,删除__Player_Backup;

不要把新复制的命名为Player_New,然后修改它。

有些情况可能更复杂一些。例如,有些修改可能涉及到两个人,上述过程有可能使得场景无法工作,而所有人必须停下来等他们修改完毕。如果修改能够很快完成,那么还用上面这个流程就可以。如果修改需要花很长时间,则可以使用下面的流程:

第一个人:

复制Player Prefab;

把它重命名为__Player_WithNewFeature或者__Player_ForPerson2;

在复制的对象上做修改,然后提交给第二个人;

第二个人:

在新的Prefab上做修改;

复制Player Prefab,并命名为__Player_Backup;

把__Player_WithNewFeature拖放到场景中,创建它的实例;

把这个实例拖放到原始的Player Prefab中;

如果一切工作正常,则可使删除__Player_Backup和__Player_WithNewFeature;

技巧六:避免对同一件事使用不同的处理风格

在很多情况下,某件事并不只有一个惯用手法。在这种情况下,在项目中明确选择其中的一个来使用。下面是原因:

一些做法并不能很好的一起协作。使用一个,能强制统一设计方向,并明确指出不是其他做法所指的方向;

团队成员使用统一的风格,可能方便大家互相的理解。他使得整体结构和代码都更容易理解。这也可以减少错误;

几组风格的例子:

协程与状态机(Coroutines vs. state machines);

嵌套的Prefab、互相链接的Prefab、超级Prefab(Nested prefabs vs. linked prefabs vs. God prefabs);

数据分离的策略;

在2D游戏的使用Sprite的方法;

Prefab的结构;

对象生成策略;

定位对象的方法:使用类型、名称、层、引用关系;

对象分组的方法:使用类型、名称、层、引用数组;

找到一组对象,还是让它们自己来注册;

控制执行次序(使用Unity的执行次序设置,还是使用Awake/Start/Update/LateUpdate,还是使用纯手动的方法,或者是次序无关的架构);

在游戏中使用鼠标选择对象/位置/目标:SelectionManager或者是对象自主管理;

在场景变换时保存数据:通过PlayerPrefs,或者是在新场景加载时不要销毁的对象;

组合动画的方法:混合、叠加、分层。

技巧七:不要搞乱场景层次结构

在游戏运行时,为动态生成的对象设置好它们的父对象,可以让你更方便的查找。你可以使用一个空的对象,或者一个没有行为的单件来简化代码中的访问。可以给这个对象命名为“DynamicObjects”。

技巧八:除了显示用的文本,不要使用字符串

特别是不要用字符串作为对象或者prefab等等的ID标识。一个很遗憾的例外是动画系统,需要使用字符串来访问相应的动画。

技巧九:把数据组织到可序列化的类中

把数据组织到可序列化的类中,可以让inspector更整洁

有些对象有一大堆可调节的变量,这种情况下在Inspector中找到某个变量简直就成了噩梦。为了简化这种情况,可以使用一下的步骤:

把这些变量分组定义到不同的类中,并让它们声明为public和serializable;

在一个主要的类中,把上述类的实例定义为public成员变量;

不用在Awake或者Start中初始化这些变量,因为Unity会处理好它们;

你可以定义它们的默认值;

这可以把变量分组到Inspector的分组页签中,方便管理。

技巧十:定义一些Debug快捷键常量

定义一些Debug快捷键常量,并把他们保存在统一的地方。Debug键通常(方便起见)在一个地方来处理,就像其他的游戏输入一样。为了避免快捷键冲突,在一个中心位置定义所有常量。一种替代方案是,在一个地方处理所有按键输入,不管他是否是Debug键。(负面作用是,这个类可能需要引用更多的其他对象)

以上就是小编根据自己经验总结出来的十大技巧,希望可以帮助到大家,虽然说可能不用到所有的项目,但你掌握了这些,就足以成为一名出色的unity3d开发工程师。了解更多相关知识,点击深圳达内unity3d培训知识

深圳达内unity3d培训

上一篇:未来的游戏VR虚拟现实能否冲垮PC端?
下一篇:VR学费多少钱_去达内VR培训轻松就业

马上预约三天免费体验课

姓名:

电话:

unity3d游戏开发哪些职位?

学赚钱的手艺_就来深圳达内unity3d培训

2018年学习3d开发技术前景怎么样?

学习Unity3D需要经历的几个阶段

选择城市和中心
贵州省

广西省

海南省