转载自unity官方平台:http://forum.china.unity3d.com/forum.php?mod=viewthread&tid=15918&highlight=小技巧
# 1
如果编辑器意外崩溃了,但场景未保存,这时可以打开工程目录,找到/Temp/_Backupscenes/文件夹,可以看到有后缀名为.backup的文件,将该文件的后缀名改为.unity拖拽到项目视图,即可还原编辑器崩溃前的场景。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113746oe7mrtemyziedrym.gif)
# 2
所有数值类型的字段,都支持在检视面板中直接输入简单的数值表达式。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113751zzn3d2x22xwwbxk3.gif)
# 3
好不容易才调好的坐标,结果发现是在运行模式下,如果退出运行模式就还原了怎么办?可以在检视面板右键点击组件名,在弹出界面中选择Copy Component,然后退出运行模式后同样右键点击组件名,在弹出界面中选择Paste Component Values即可。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113756rlsblaam9re9bf0l.gif)
# 4
分别按键盘键Q、W、E、R、T可以依次切换界面上的小工具,除此之外,按数字键2或3还可以切换场景为2D模式或3D模式。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113758x586xoll868mhy4z.gif)
# 5
右键点击检视面板下方的预览窗口即可让预览窗口跳出来,然后自己选择合适的地方停靠,这样切换模型查看就不会影响到其它面板。想让预览窗口回到原位,只需右键点击窗口,在弹出菜单中选择Close Tab即可。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113806d0kzt0kge3e30z53.gif)
# 6
在层次视图的搜索框中输入完整的脚本或组件名称,即可找到所有绑定了该脚本或组件的对象。或者在搜索框中输入t:加上某个类别如light,即可找到使用同类组件的对象。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113811cnm5ddo3ti2jo1en.gif)
# 7
如果想在检视面板查看脚本的私有变量,只需点击Inspectore,在弹出菜单中选择Debug即可。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113815hcbhcbjvyjw7qfyc.gif)
# 8
如果希望游戏运行第一帧暂停,可以先点击暂停按钮,然后点击播放按钮,这样程序就会在Update函数执行一次后暂停。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113816bpplll4eeducu4yc.gif)
# 9
在使用Debug.Log函数时传递游戏对象给第二个参数,既可在点击控制面板的输出信息时自动定位到对应的游戏对象。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113819r44564o9s6o066jb.gif)
# 10
可以借助编辑器自带的标记功能为脚本分类,在检视面板中点击脚本图标下方的小三角,即可为脚本设置颜色或选择图标。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/113821llofm4sggffib443.gif)
二
#1
如果你是极具冒险精神的程序员,那这个技巧一定要去试试。你知道Unity里面的文件名、类名、函数名、变量名、序列化定义甚至是Tag名称都可以支持中文吗?不过不建议大家这么做,所以出现问题自己负责哈。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214556lbkr20sa9dtrogbz.gif)
#2
如果你的屏幕够大,可以在开发过程中打开多个场景或其它视图,这样在调整时就可以看到场景的不同区域或角度。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214704oayi0lhy0yk0h5yw.gif)
#3
在工程视图或层次视图中,按住Alt键同时点击对象,就可以展开或收起该对象所有的子节点,包括嵌套子节点。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214824ua44761zp6r4kt43.gif)
#4
如果同一文件夹下的所有图片是一个序列帧动画,可以将整个文件夹拖拽到工程目录,选中所有图片后将纹理格式改为Sprite并点击Apply,然后将所有图片一起拖拽到层次视图或场景,Unity会自动询问是否创建动画并弹出对话框询问动画文件保存位置。并且点击保存后会自动在层次视图中生成包含该动画文件的游戏对象,点击运行即可看到序列帧动画。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214827s088874ozc8l4tge.gif)
#5
不借助Unity 5.3最新的多场景编辑工具,也可以在两个不同场景间复制对象。只需在层次视图中选中目标对象,右键单击在弹出菜单中选择Copy,打开目标场景后粘贴到层次视图即可。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214844a85ajfea5sajs86t.gif)
#6
在场景中选中某个对象,按F键会将该对象聚焦到屏幕中心,但在移动该对象时镜头并不会跟随。如果按两次F键,或者按Shift+F键,即让镜头跟着该对象后面移动。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214849nbanb343bf4t3rwa.gif)
#7
如果觉得在场景视图中调整对象视角太不方便,可以按住右键结合键盘上的A、S、W、D、Q、E键像走路一样调整到合适的视角,然后点击GameObject菜单下的Align With View即可将游戏视图的视角与场景视图同步。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214851wa6jj86u6oyuk965.gif)
#8
检视面板中所有的颜色字段都是支持复制和粘贴的,只需右键点击颜色字段既可选择操作。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214855wnjgtge3n05tnv5q.gif)
#9
在层次视图中选中某个游戏对象,按快捷键Cmd/Ctrl+D即可复制该对象,对于检视面板中的数组字段也可已同样的方式来复制元素。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214856rauqpuqmgsnvevem.gif)
#10
如果不确定正在使用的插件是否有更新,可以在编辑器中点击Window菜单下的Asset Store,然后点击Asset Store界面上的下载按钮,会出现所有下载过的插件列表,该列表会显示插件是否需要更新或重新下载。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/19/214908y5oukr15or15wmk9.gif)
三
技巧一
程序员们应该都知道,从项目视图点击右键创建的脚本会自动填充一些代码。其实这些自动填充的代码模板也是可以自定义的。
如果使用Mac,找到应用程序中的Unity.app,右键单击显示包内容,找到Resources>ScriptTemplates文件夹,然后选择你要创建模板的脚本类型,复制一份自己命名并编辑后保存,然后退出编辑器之后重新打开,再在项目视图中右键单击创建,就会出现刚刚添加的脚本类型。打开新建的脚本就可以看到自定义的模板代码。
如果使用Windows,则在ProgramFiles(x86)或ProgramFiles目录下的Unity/Data/Resources/ScriptTemplates文件夹下进行同样的操作即可。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000351cea8t47untgaauaz.png.thumb.jpg)
技巧二
如果发现Unity打包安卓平台生成的apk体积过大,可以找到PlayerSettings中的安卓平台,默认情况下Device Filter设定为FAT(ARMv7+x86),表示两种安卓架构平台。如果只需发布到一种架构则单独选择对应的一种即可。这样可以有效减小包体积。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000351n5yseue2eevt2yn5.png.thumb.jpg)
技巧三
在项目视图的搜索框中输入资源名称,可以找到项目中所有具有该关键字的资源。将搜索类型换成Asset Store,则可以找到Asset Store上所有拥有该关键字的资源,并按免费和付费分类。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000351huze4acyserdeeo8.png.thumb.jpg)
技巧四
如果喜欢物体可以紧贴地面,但倾斜角度不好调整,这时可以在物体上添加Mesh Collider和Rigidbody组件,然后点击运行,借助Unity的物体引擎来计算位置。待物体坠落到地面后复制所有物体,停止运行后删除原先的物体再粘贴运行时复制的内容,并删除所有物体上的Mesh Collider和Rigidbody组件即可。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000352cw4smmjwzevg55rl.png.thumb.jpg)
技巧五
如果需要拼合两个物体,可以自己分别在两个物体上创建立方体当作锚点,按住V键进入顶点选择模式,然后选择锚定立方体上需要拼合的两个顶点,即可将物体无缝拼接在一起。
如果需要旋转物体,可以按下Cmd/Ctrl键后用鼠标操作旋转,这样可以让物体每次固定旋转15度,最终转到正确位置。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000352u4toq2oggpzgposg.png.thumb.jpg)
技巧六
在场景中按住右键可以以视点为中心查看整个场景。如果希望物体始终保持在焦点处,可以在层次面板双击该物体,然后按住Alt键后用鼠标查看周围场景,并且物体一直位于焦点。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000353kgcsf5fc4w9s4e9b.gif)
技巧七
如果脚本出现错误,Unity编辑器会因为检查到出错而无法进入运行模式,这时可以在项目视图中新建文件夹WebplayerTemplates,然后将出错的脚本拖入此文件夹下,所有位于该文件夹下的文件都会被识别为一般文件从而不会当作脚本被编译,这样就可以运行游戏了。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000353onqbdnt7cqnpczwz.png.thumb.jpg)
技巧八
如果你的鼠标的中键是可以按下的,可以按住鼠标中键来平移整个场景。或者将鼠标移至物体上后点击中键按钮,编辑器会以平移的方式将物体中心移动鼠标位置。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000354w261ux2er9awnna9.gif)
技巧九
当需要拖拽对象至检视面板时,常常会因为操作原因导致检视面板的内容已经改变了。这时可以点击检视面板右上方的锁图标,锁定检视面板,这样不论其它视图如何切换,检视面板都会显示固定内容。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000355cxno890z8ez68x5x.png.thumb.jpg)
技巧十
如果编辑2D游戏的图片时总是不小心点选到背景,可以在Layer里边设置哪些层是锁定或不可见的,将背景层锁定后就不能点选到它了,这样在编辑时就不会出现误操作。但锁定图层后还是可以从层次面板上选中背景来进行调整,这样就不用每次反复锁定和解锁图层。
![](http://forum.china.unity3d.com/data/attachment/forum/201603/27/000356y1p8il9n1zc529bn.png.thumb.jpg)
四
技巧一
在float型的字段前添加范围属性声明如[Range(0, 10)],即可在检视面板中使用滑动条来设置该字段的值。
技巧二
对一组字段使用属性声明[Header(“XX”)],可以在检视面板中将字段进行分组。
技巧三
从Unity 5开始,新建场景默认会带有天空盒,可以利用Unity自带的天空盒材质来自定义天空盒颜色。
技巧四
如果常常不小心进入播放模式后编辑场景内容,其实可以依次点击菜单项Edit > Preferences > Colors > Playmode设置编辑器在进入播放模式后的颜色,与正常模式下明显区分开来。
技巧五
将鼠标聚焦于编辑器内的某个窗口,按住Shift+空格键,可以将该窗口最大化至编辑器范围或者还原为原先大小。
技巧六
如果场景中某个物体与另一物体相对的位置、旋转及缩放均保持不变,那么在调整目标物体的方向时,可以先选中编辑器界面的小工具,按住Ctrl/Cmd+Shift键,这样在操作其中一个物体时,另一个也会随之变化。
技巧七
如果脚本中有变量名打错,需要批量修改,在Mac上可以按住Cmd+R键,Windows上按住F2键,然后选中需要修改的变量名进行批量修改。
技巧八
使用UI中的Mask组件时,需要指定一张图片作为遮罩对其子对象进行裁剪,取消勾选组件上的Show Mask Graphic则可以在保持裁剪效果的同时隐藏Mask本身的图片。
技巧九
在设置所有颜色类型的属性时,可以将当前颜色值加入预设,该预设会保存在本地且可以在不同的工程间共用。
技巧十
你知道矩形工具也可以用来操作3D物体吗?
在float型的字段前添加范围属性声明如[Range(0, 10)],即可在检视面板中使用滑动条来设置该字段的值。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114610z3qvuwpqlbbb6hhv.gif)
技巧二
对一组字段使用属性声明[Header(“XX”)],可以在检视面板中将字段进行分组。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114610h6bp8tpzbmd9lbml.png.thumb.jpg)
技巧三
从Unity 5开始,新建场景默认会带有天空盒,可以利用Unity自带的天空盒材质来自定义天空盒颜色。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114616jybonaz4u688d8a4.gif)
技巧四
如果常常不小心进入播放模式后编辑场景内容,其实可以依次点击菜单项Edit > Preferences > Colors > Playmode设置编辑器在进入播放模式后的颜色,与正常模式下明显区分开来。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114619tggnljjjgjmzynl5.png.thumb.jpg)
技巧五
将鼠标聚焦于编辑器内的某个窗口,按住Shift+空格键,可以将该窗口最大化至编辑器范围或者还原为原先大小。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114620nqqtxpuq41s9nn2l.png.thumb.jpg)
技巧六
如果场景中某个物体与另一物体相对的位置、旋转及缩放均保持不变,那么在调整目标物体的方向时,可以先选中编辑器界面的小工具,按住Ctrl/Cmd+Shift键,这样在操作其中一个物体时,另一个也会随之变化。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114620gzz5565a33u96z6u.png.thumb.jpg)
技巧七
如果脚本中有变量名打错,需要批量修改,在Mac上可以按住Cmd+R键,Windows上按住F2键,然后选中需要修改的变量名进行批量修改。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114620tk111skkxdtwyzts.gif)
技巧八
使用UI中的Mask组件时,需要指定一张图片作为遮罩对其子对象进行裁剪,取消勾选组件上的Show Mask Graphic则可以在保持裁剪效果的同时隐藏Mask本身的图片。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114620degih4jgshh3rhr4.png.thumb.jpg)
技巧九
在设置所有颜色类型的属性时,可以将当前颜色值加入预设,该预设会保存在本地且可以在不同的工程间共用。
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114621w2fr0fuk5jf2o6io.png.thumb.jpg)
技巧十
你知道矩形工具也可以用来操作3D物体吗?
![](http://forum.china.unity3d.com/data/attachment/forum/201605/02/114622k8eekevekkvy72uc.gif)
五
技巧一
为字段声明的代码中加上[Tooltip(“XX”)]属性声明,在检视面板中,当鼠标悬停在字段名上,会出现Tooltip中指定的提示信息,让策划人员能更好地理解字段代表的意思。
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032202wy6qk167f6j1c0eq.png.thumb.jpg)
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032202cd7jzvqjqvq7dxsf.png.thumb.jpg)
技巧二
在层级视图中选中游戏对象,按快捷键Shift + Alt + A可以快速设置对象激活状态。
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032202ieku9ttitmuj9ize.gif)
技巧三
在层级视图中选中游戏对象后,依次点击菜单项GameObject> Align With View Selected,可以快速将场景视图聚焦到当前选中的对象:
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032202qty1t0ly6z02yr11.png.thumb.jpg)
技巧四
同样在层级视图中选中游戏对象后,依次点击菜单项GameObject > Move To View,或是使用快捷键Shift + Cmd/Ctrl + F,可以快速将选中的对象移动至场景视图中心位置。
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032203psek6s66ssk6uaa8.png.thumb.jpg)
技巧五
在编辑过Prefab之后,如果希望将Prefab的某个属性值恢复为初始值,只需右键点击该属性,在弹出菜单中选择RevertValue To Prefab即可。注意:只能回复到Prefab上次保存时的状态。
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032204veu7x8y9zw3zeyoc.png.thumb.jpg)
技巧六
在游戏对象的检视面板中,点击BoxCollider组件上的Edit Collider按钮,然后切换到场景视图拖拽小绿点,就能快速改变BoxCollider的尺寸:
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032204cq8lmj9p8xus7sps.gif)
技巧七
Unity默认会在检测到项目脚本或资源有更改后自动进行刷新,如果不希望Unity编辑器突然刷新,可以依次点击菜单项Unity(Windows下是Editor) > Preference,取消勾选General下的Auto Refresh。在需要刷新时依次点击菜单项Assets > Refresh手动进行刷新。
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032204qhnc83c9cw33vine.png.thumb.jpg)
技巧八
在新的UI系统(Unity 4.6及以上版本)中,Canvas的Camera有三种渲染模式,分别是Screen Space - Overlay、Screen Space - Camera、World Space。其中Screen Space - Overlay是2D无透视HUD,渲染在所有物体最上方。Screen Space - Camera是2D透视HUD,根据场景深度决定渲染层次。World Space是3D透视,同样根据场景深度决定渲染层次。
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032205oongyoo3xai7oxh3.png.thumb.jpg)
技巧九
其实Unity编辑器中还可以显示自定义的提示界面,只需编写继承自EditorWindow的编辑器类,简单的调用以下函数即可:
ShowNotification(newGUIContent(EditorGUILayout.TextField(“XX")));
其中XX是界面需要显示的提示信息。例如,使用如下代码:
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032205jmk3f9cc11skk3t1.png.thumb.jpg)
依次点击菜单项Edit > Test,会出现如下界面:
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032205esd2r0t0ogggk2za.png.thumb.jpg)
技巧十
其实可以同时安装多个Unity版本。Mac系统下直接在应用程序中更改Unity文件夹名称后再安装另外的版本即可。Windows下将不同的Unity版本安装到不同目录即可。
![](http://forum.china.unity3d.com/data/attachment/forum/201606/29/032206ya4keexwel26kdb4.png.thumb.jpg)
本次的小技巧介绍到此结束,大家知道或者想知道哪些Unity相关的小技巧,均可在下方评论区留言,或参与微博#UnityTips#话题讨论。