Unity游戏优化(第2版)学习记录9

第9章 提示与技巧

一、编辑器热键提示

(如果Mac OS热键需要不同的按键,就在括号中写明)

1、GameObject

在Hierarchy窗口中选中GameObject,并按下Ctrl + D(Command + D),可以复制GameObject。使用Ctrl + Shift + N(Command + Shift + N),可以新建空的GameObject。
按下Ctrl + Shift + A(Command + Shift + A),可以快速打开Add Component菜单。

2、Scene窗口

按下Shift + F或双击F键可以在Scene窗口中跟随选中的对象。
按住Alt键并在Scene窗口中使用鼠标左键拖动,可以使Scene窗口的摄像机环绕选中的对象。按住Alt键并在Scene窗口中使用鼠标右键拖动可以拉近和拉远摄像机(Alt + Ctrl + 左键拖动)
按住Ctrl键(Mac OS下为Command)并用左键拖动可以使选中的对象在移动时对齐到网格上。在调整对象的周围旋转小部件时,按住Ctrl(Mac OS下为Command)键也可以以相同的方式旋转。选择Edit | Snap Settings…打开窗口,可以基于每个轴编辑对其对象的网格。
在Scene窗口中移动对象时按住V键(需要先按住V再移动),可以强制对象通过顶点对其到其它对象。这样所选对象自动将其顶点对齐到与鼠标光标最近的对象上最近的顶点。这适用于对齐场景片段,例如地板、墙壁、平台和其它基于平铺的系统,不需要进行微小的手动位置调整。

3、数组

在Inspector窗口中选中数组元素,并按下Ctrl + D(Command + D),可以复制该元素,并插入当前选中的位置之后。
通过Shift + Delete(Command + Delete)可以从引用数组(如GameObject数组)中删除条目。这将去除元素并压缩数组。注意第一次按下时将清除引用,将其设置为null,第二次按下时将移除元素。对于基本类型(int、float等)的数组,不需要按住Shift键(Command),只需要按Delete键即可删除数组中的元素。
在Scene视图中按下鼠标右键时,可以使用W、A、S和D以传统第一人称相机控制的方式围绕相机飞行。Q和E键也可以分别用于起飞和降落。

4、界面

按住Alt键并单击Hierarchy窗口中的箭头(任何父对象名左边的灰色小箭头),可以展开对象的全部层级,而不是仅展开下一个层级的内容。这适用于Hierarchy窗口中的GameObject、Project窗口的文件夹和预制体、Inspector窗口中的列表等。
在Hierarchy或Project窗口中可以像传统RTS游戏一样保存和恢复对象。选中对象并按下Ctrl + Alt + <0-9>(Command + Alt + <0-9>)来保存当前选择。按下Ctrl + Shift + <0-9>(Command + Shift + <0-9>)可以恢复它。
按下Shift + 空格,可以使当前窗口充满整个编辑器屏幕。再次按下会将窗口恢复为原来的位置和大小。
按下Ctrl + Shift + P(Command + Shift + P)将在Play模式下切换到Pause按钮。

5、在编辑器内撰写文档

在MonoDeveloper中,高亮显示Unity关键字或类,按下Ctrl + ‘(Command + ‘)可以快速访问其文档。
在Visual Studio中按下Ctrl + Alt + M,接着按Ctrl + H可以实现相同的功能。

二、 编辑器UI提示

1、脚本执行顺序

导航到Edit | Project Settings | Script Execution Order,可以指定哪些脚本优先执行其Update()和EixedUpdate()回调。

2、编辑器文件

Unity会为各种资源生成.meta文件,如果没有包含这些文件,那么将数据拉到本地Unity项目时,必须重新生成这些元数据文件。这可能潜在地导致冲突,因此每个人使用相同版本的元数据文件是有必要的。可以通过Edit | Project Settings | Editor | Version Control | Mode | Visible Meta Files开启该特性。
将某些资源数据转换为只包含文本的格式而不是二进制数据也是有帮助的,该选项可以在Edit | Project Settings | Editor | Asset Serialization | Mode | Force Text中开启。
Open Editor Log:

Add Tab:

锁定Inspector:

3、Inspector窗口

可以将计算输入到Inspector的数字字段中。
右击数组的根元素并选择Duplicate Array Element或Delete Array Element,可以从列表中复制和删除数组元素。
通过右上角的小齿轮(2020版Unity为竖排3个小点)或右击组件名称,可以访问组件的上下文菜单:

Inspector的Debug Mode和Normal Mode:

如果一个GameObject是从一个预制体产生的,那么整个对象可以使用Inspector窗口顶部的Revert按钮恢复到初始预制体的状态,在值的名称上右击并选择Revert Value To Prefab,可以还原独立的值:

对于网格对象(有Preview预览窗口的对象),可以通过右击Preview窗口部分的顶部,它将被分离并放大到单独的Preview窗口中,关闭窗口时Preview部分会回到Inspector窗口中。

4、Project窗口

Project窗口允许通过单击搜索栏右侧的小图标来筛选指定类型的对象。还可以通过输入t:格式的字符串,筛选指定类型的资源

还可以通过右击Project窗口的标题我文本改变Project窗口的布局:

5、Hierarchy窗口

Hierarchy窗口可以通过输入t:搜索组件对应的GameObject,并且从给定类型的派生类组件也会显示。

6、Scene和Game窗口

从Game窗口看不到Scene窗口相机,但通常通过使用前面提到的热键来移动和放置相机要容易得多。编辑器允许将所选对象对其到相同的位置,并通过GameObject | Align with View或按Ctrl + Shift + F(Command Shift + F)旋转场景窗口相机。这意味着可以使用相机控件将Scene窗口的相机放置在希望对象所在的位置,并通过将其与相机对其,将对象放置在那里。
同样,可以通过选择GameObject | Align View to Selected将Scene窗口相机与所选对象对齐。
可以在Scene窗口上执行类似的基于组件的过滤,就像在Hierarchy窗口中一样,在其搜索栏中使用t:语法。

在Unity编辑器的右上角有一个标签为Layers的下拉菜单(如图)。这包含一个基于Layer的Scene窗口过滤和锁定系统。
编辑器的一个有用的常见功能是,可以为GameObject提供特殊的图标或标签,使它们更容易在Scene窗口中找到。这对于没有渲染器但期望能在Scene窗口中轻松找到的对象特别有用(例如空的GameObject)

7、Play模式

由于Play模式的更改不会自动保存,因此最好修改Play模式中的颜色,使其明显地显示当前使用的模式。此值可以通过Edit | Preferences | Colors | Playmode tint进行设置。
可以简单使用剪切板保存Play模式的改动。如果在Player模式下调整对象,对对象的设置满意后,则可以通过Ctrl + C(Command + C)复制对象到剪切板,并在退出Play模式时使用Ctrl + V(Command + V)将其粘贴回Scene。
使用组件上下文菜单中的Copy Component和Paste Component选项,可以对整个组件的各个值执行相同的操作。然而,剪切板一次仅能包含一个GameObject、Component或一个值的数据。

三、脚本提示

1、一般情况

可以修改新脚本、着色器和Compute Shader文件的不同模板。这些文件可以在下述位置找到:
· Windows:\Editor\Data\Resources\ScriptTemplates
· Mac OS:/Applications/Unity/Editor/Data/Resources/ScriptTemplates/

2、特性

特性是非常有用的“元-级别”的标记,它几乎可以赋予C#中的任何目标。它通常用于字段和类,允许使用特殊属性标记它们,以便进行不同的处理。中级和高级Unity开发者应该读一读C#关于特性的文档。特性包括[Range],[FormerlySerializedAs],[SelectionBase],[RequireComponent],[ExcuteInEditMode]等等。

3、日志

可以为调试字符串添加富文本标签。例如:< size>,< b>,< i>,< color>等

4、有用的链接

关于各种脚本特性用法的有用向导:
https://unity3d.com/learn/tutorials/topics/scripting
在Unity Answers上有一篇很有帮助的文章,它提供了一个参考列表,涵盖了在开发过程中可能遇到的许多不同的脚本和编译错误:
http://answers.unity3d.com/questions/723845/what-are-the-c-error-messages.html
嵌套协程:
http://www.zingweb.com/blog/2013/02/05/unity-coroutine-wrapper
API历史页面:
http://docs.unity3d.com.ScriptReference/40-history.html

四、自定义编辑器脚本和菜单提示

· [MenuItem]
· [ContextMenu]

五、外部提示

略。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值