欢迎来到我的博客小站。  交流请加我微信好友: studyjava。  也欢迎关注同名公众号:Java学习之道

[转] 40个Unity游戏开发小阴招

  |   0 评论   |   0 浏览

原文链接:https://blog.csdn.net/qq_21743659/article/details/108747087

Unity游戏开发小技巧集结,不用谢我,我只是大自然的搬运工

1. 借助 Prefab 暂存数据

可以直接在脚本的 Inspector 上填写,然后把整个 GameObject 拖成 Prefab 暂存。
等要用的时候再拖出来。

2. DontDestroy模式

在跨场景的时候保持某些对象一直存在,不必要每次都重新加载,譬如显示广告的模块。

3. 内置函数

Awake,Start,Update,FixedUpdate,LateUpdate 函数,令开发者直接往游戏循环里加内容,非常方便快捷。

4. Input

Input.MouseDown 在移动设备上也通用,对于一些对输入性能要求不高的操作,直接用它来代替 Input.TouchCount或者 RaycastHit 即可。

5. UGUI

新的 UGUI 支持多种 Camera 渲染,以及 RectTransform 里Anchor 的灵活配置,功能很强大。
提前设计好的话,可以一套 UI 同时支持 iPhone4/5/6/iPad以及所有 Android 设备各种尺寸的分辨率。
再也不必做多套 UI 来适应各种设备了。

6. Editor 脚本

可以方便在编辑器里扩展,对开发和摆关卡帮助极大。

7. 测试

测试运行时,可以在任意时候暂停游戏,重新调整数值,游戏对象的位置等等,然后再继续游戏。

8. Editor/Resources 目录可以存在多个,且可以存放在任意目录下

写自己的插件或者代码库时可以自带辅助的资源。

9. Hierachy 层级

在 Hierachy 层级对话框,可以随时输入搜索关键字,然后一起选中筛选出来的GameObject,这个时候可以同时修改它们的相同属性。

10. 内置取色器可以暂存颜色

11. 显示脚本的公用属性

脚本的公用属性在 Inspector 中显示时,可以用额外的修饰符控制其显示方式,取值范围等等,非常方便。

12. StreamingAssets 目录是用来存放不加密的外部文件

它还有一个极好的用途是存放测试数据。
方便在 PC/MAC/移动设备上都能调用到同样的测试数据进行模拟处理。

13. 配合 Alfred 这款快捷启动的小工具

输入“us 关键字”即可快速调出Unity的 ScriptAPI,你是否也经常忘记 Collier/Trigger 函数的完整写法?

每次都需要从帮助手册里复制代码段?

14. Unity死机未保存场景

当你在Unity中编辑场景,突然死机时,可以在项目文件目录中找到Temp文件夹,双击文件夹,找到_Backupscenes文件夹,把后缀为.backup的文件后缀改为.unity,然后拖进Unity的Project界面里面,这样就可以还原死机前场景最后情况。

15. Inspector界面的数值栏自带加减乘除功能

从Unity5.1开始,可以在Inspector界面中的数值栏进行计算,比如:
你可以在Transform里面的Position中X栏中加减乘除。

16. 随意移动模型预览视窗

在Project界面里面选中模型,在Inspector界面上会显示模型的预览视图,右击视图的上的双横条,模型预览视图就会跳出来,此时就可以像Scene,Game等视窗一样任意移动,放在你想放的地方,如果想让他变回去,只要关掉它即可。

17. 搜寻当前场景中哪些物件运用了指定脚本

在Hierarchy界面中的搜索栏中输入你想要搜索的脚本全名,即可找到哪些物件用了这个脚本,此方法也可以用来搜索哪些物体上有哪些物件,比如:
Rigidbody等。

18. 在界面上查看private变量

在Inspector界面右击Inspector的标签栏,选择Debug。

19. 只让游戏运行一帧

先按下暂停键,再按运行键。

20. 通过Debug.Log获取执行此语句物件

在脚本的Debug.Log语句中加入gameObject,即Debug.Log("Test", gameObject); 脚本运行时点击Console界面中的输出语句,就能在Hierarchy界面中看到哪个物件执行了这个脚本。

21. 展开所有子节点

按住Alt,用鼠标点击包含子节点物件前的三角形,在Hierarchy界面和Project界面都可以使用。

22. 编辑时镜头跟随选中物件

在Scene界面中选中物件按F,镜头就会对准选中物件,并使其在Scene窗口中居中,如果在拖动物件时,要让镜头跟随物件移动,选中物体后按Shift+F即可。

23. 在Scene界面中方便移动编辑镜头

在Scene界面中鼠标右键 + A/S/D/W/Q/E来移动镜头, 如果想使Game视窗的镜头跟Scene一样,可以在Unity菜单栏中选择GameObject-->AlignWithView。

24. 在Project界面搜索商店内容

先在Project界面中的搜索栏中输入你想要搜索内容的关键字,然后在搜索栏下边的搜索范围选择中选择AssetStore。

25.区分Unity项目

还在用4.X, 拍案叫绝不敢说, 多开几个Unity实例我不知道各位看官怎么区分开的倒地是哪个?我们用Unity的C#功能识别路径把Unity的路径打到标题栏, 这样就方便多了

26. 脚本编译可以不用mono编译器

而编译的dll和il都可以在mono上跑。
从而规避老版本编译器的一些生成问题。

27. shader lab支持自定义对应版本的bytecode

可以用别的shader编译器来编译shader。
也是挺灵活的。

28. 横向移动

做一个横向移动模块 里面有个Update函数 传入Transform,就把Transform按固定速度横向移动。

29. 纵向移动

做一个纵向移动模块 里面有个Update函数 传入Transform,就把Transform按重力加速垂直移动。

30. 下次要做一个 斜向固定速度的,就重用 横向移动模块

单独写一个纵向固定速度移动的模块。
同样的角色脚本,推这两个组件进去,角色就斜着飞了。

31. 把一个模块列表做成状态机状态,加个进入模块和退出模块。

加点状态转换逻辑,你就有个状态机了。

32. 可以把Update函数,拿一个协程的iEnumerator代替

进入状态就启动协程。
定时的,不用更新,或者其他特殊的状态都可以轻松搞出来了。

33. 状态里面定义个System.Action之类的事件,模块可以随便抛出这个玩意。

呵呵,这下动画关键帧也有了。

34. 角色

做一个角色的脚本 包含一个模块列表,把一个横向和一个纵向模块推入列表,然后角色每次Update就遍历就执行每个模块的Update。

35. 快捷目录

Project窗口下,可以把文件夹直接拖到Favorites下作为快捷入口,再也不用找一个文件翻半天了,常用的目录都可以放在这里

36. 线框输出

Game窗口的右上角有个Gizmos按钮,点击之后可以把你用于Debug画出来的所有线框都画到游戏场景中,其中包含Gizmos类画出来的所有东西,以及Unity本身提供的碰撞体等等这些需要去Scene窗口看的东西,尤其是没有双屏幕的开发者,这个功能太贴心了。

37. 自定义Profiler

利用Profiler.BeginSample()和Profiler.EndSample()函数,可以将任何代码断加入Profiler输出,性能调优的利器,一般来说如果有某个地方你自己对于性能不是很有把握,检测一下即可知道其使用开销,用了之后就停不下来了。

38. 反射

如果项目中有一些使用到反射的代码不太方便修改,而又希望通过设置Stripping Level来降低包体大小和内存占用,可以在Assets目录下添加link.xml文件来指定涉及到反射的类。

39. 查看prefab的配置

通过将Editor Setting中的Asset Serialization设置为Force Text可以查看prefab的配置内容,并通过比对工具进行差异处理和合并。


标题:[转] 40个Unity游戏开发小阴招
作者:shirln
地址:https://mmzsblog.cn/articles/2020/10/22/1603376584164.html
-----------------------------
如未加特殊说明,此网站文章均为原创。
网站转载须在文章起始位置标注作者及原文连接,否则保留追究法律责任的权利。
公众号转载请联系网站首页的微信号申请白名单!

个人微信公众号 ↓↓↓                 

微信搜一搜爱上游戏开发