1.通过代码来控制Unity3D的帧率、
Application.targetFrameRate=-1;
说明:设置为-1,游戏以当前硬件条件和游戏性能情况最快速度运行;设置为60,游戏以60FPS运行(在60上下浮动,并不是一个定值)
注意:当设置 垂直同步,上面设置的值就不会起到作用。
Editor -> ProjectSetting -> Quality:开启渲染质量设置面板
Quality.png
Don’t Sync:不设置垂直同步。
Every V Blank:设置垂直同步为1,游戏帧率在60上下跳动。
Every Second V Blank:设置垂直同步为2,游戏帧率在30上下跳动。
2.关于UGUI中(Canvas)层级渲染的问题
Canvas模式:
Screen Space-Overlay
Screen Space-Camera
World Space
UI界面的渲染层次问题:
1.Screen Space-Overlay 模式是渲染在最前面滴,当两个Canvas都是处于该模式下,Sort Order值大的渲染在前面。
2.Screen Space-Camera 模式是渲染在第二位滴,当两个Canvas都是处于该模式下,首先看Sorting Layer,这里可以自定义层级关系,越往下优先级越高;当Sorting Layer层级相同的时候,就需要看Order in Layer参数了,Order in Layer值大的渲染在前面。
3.World Space 模式是渲染最低滴,当两个Canvas都是处于该模式下,依旧受到Sorting Layer和Order in Layer的影响(和Screen Space-Camera一样)。但是要注意,距离Camera的远近也会影响渲染效果(同样的Screen Space-Camera,离Camera越近,优先渲染)
这里自己画了一幅图,便于理解:
渲染顺序比较.png
3.关于查找GameObject的几个方法:
- GameObject.Find("名字/路径")
说明:无法查找隐藏对象;如果查找不是在Script所在的一层,路径必须写正确。
注意:使用方便但效率低下,此查找相当于递归遍历查找,建议在Start()函数中查找对象并保存引用,切忌在Update()中动态查找。 - Transform.Find("名字/路径")
说明:能够查找隐藏对象(前提:隐藏对象的父节点都是true) 。建议使用这种方式 - GameObject.FindWithTag("Tag Name")
- GameObject.FindGameObjectsWithTag("Tag Name")
说明:二者都是通过Tag查找,相比于GameObject.Find(),需要多进行一步:设置Tag,效率稍微高一点。 - Object.FindObjectOfType
- Object.FindObjectsOfType
- Resources.FindObjectsOfTypeAll
说明:这三个不是特别熟悉,不经常使用。返回指定类型的对象列表。主要用于编辑器中,eg。检测内存泄露、批量查找的功能等。
4.在代码中给相关字段添加属性可以在Inspector面板添加说明信息
- Header("xxx") 在Inspector面板中进行xxx提示
- Space(50) 将制定的字段和上面的字段设置50的间距
-
[Tooltip("yyyyyy")] 鼠标停留当前字段时显示提示信息
-[Range(0,10)] 对于float类型的字段添加Range注释,可以在Inspector面板中使用滑动条来设置该字段的值。
code.png
Inspector显示.png
5.一些Unity小操作
- 在Hierarchy面板,Shift+Alt+A可以快速设置对象激活状态
- 如果Unity编辑器意外崩溃,但场景未保存,这个时候可以打开工程目录,找到Temp/_Backupscenes/文件夹,找到后缀名为.backup的文件,将其后缀改为.unity拖拽到项目视图中,即可还原编辑器崩溃前的场景。
- 如果脚本报错,Unity编辑器因为错误无法变异通过进入运行模式,这个时候可以在项目视图中创建一个WebplayerTemplates的文件夹,将报错的脚本暂时拖入到该文件夹下即可以运行游戏啦。所有位于该文件夹下的文件被识别为一般文件而不会被当做脚本编译。
网友评论