gzyueqian
13352868059

粤嵌Unity3D培训教你避开编辑器的坑

更新时间: 2017-08-21 15:58:01来源: 粤嵌教育浏览量:4614

初学者在使用Unity时很很可能不小心踩到一些在不利于项目开发的坑,粤嵌Unity3D培训在这里教的应该避开哪些坑。

1.制作抽象的prefab来做关卡编辑

尽可能制作抽象的prefab来做关卡编辑,该prefab应该足够抽象简单(只有一个GameObject,然后通过Gizmo来绘制是个不错的手段),否则以后变化的时候(常见的就是改美术资源),所有关卡都lost prefab,那么对策划来说是一场灾难。

2.尽可能避免修改Scene,方法有几种:

使用xml之类的数据组织场景

尽量多让sceneprefab组成,这样变动都在prefab

使用工具做场景Merge

3.不要过度依赖Component特性来开发,考虑数据驱动。

4.逻辑容易散落在编辑器各处,可以做一个中心管理。

利用unity的特性

组织好hierarchy,不管是编辑的时候还是运行的时候,编辑的时候可以通过工具来简化组织层级的工作。

让每个场景自己能跑。

利用基于组件的架构,尽可能少的使用继承(C#的话),多通过组合来完成开发。遇到需要数据访问的通用接口,我们可以通过组合的方式来完成,而不是提供一个公共基类接口来继承,只要大家都认识这个公共组件就可以取到数据了。

做好taglayer规划,要考虑业务中哪类物体之间需要交互。

在代码里面get某个prefab或者GameObject,可以考虑利用界面拖目标过来,这样更加直观,而且也能对抗变化,比如目标名字变了也不怕,而且还能节省代码量。

代码

粤嵌Unity3D培训认为,Unity3D容易被破解,因为发布版本的IL是非常容易被反编译的,要做好混淆的考虑。在Unity3D中混淆要考虑对编辑器的影响。

复杂类型尽量使用引用类型,值类型反射麻烦,不方便序列化以及做成编辑器。值类型要小心赋值对象是否只是临时对象。

引用类型释放之后,引用它的指针会置为null,可以放心使用。Foreachlinq、协程慎用,反射只在编辑器中使用。考虑封装Time,方便做暂停。

考虑使用调度器来完成功能,而不是在Update自己维护状态,这样做暂停也很容易,代码更清晰,功能更内聚。

美术

复杂功能也应该通过编辑器开发给策划微调,特别是可视化比较重要的模块,比如动作调整。

制作原型美术,让开发提升开发效率。有统一的约定,比如模型总是中心对齐,角色总是脚部对齐,统一的缩放、统一的动画骨骼命名,资源有统一的路径。

支持换装(avatar)要一开始就想清楚。

资源加载和优化尽可能早地给出雏形(只是雏形,帮助你对需求的把握,因为这时候你还不知道热点在哪)。因为有雏形,那么代码会间接一点,也为改变提供了空间。

情况是在不断地变化,要使自己的思想适应新的情况,就得学习。开发时遇到的问题,粤嵌Unity3D培训建议要灵活处理。

 

 

 

免费预约试听课