编辑器使用基础

前一章节中,我们已安装了Unity编辑器并创建了Demo工程,这篇笔记我们继续介绍有关Unity编辑器的基础使用相关内容。

Project视图

Project视图用于管理工程的资源和文件目录结构。

在Project视图右上角可以看到搜索框,输入关键字即可筛选资源,支持同时输入多个关键字。搜索框旁的Search by TypeSearch by Label两个按钮可以进一步按资源类型和标签过滤,分别对应搜索语法中的t:l:前缀,例如输入t:Scene只搜索场景文件。资源较多时,灵活使用搜索功能是十分方便的。

Project视图还可以在一栏模式(One Column Layout)和两栏模式(Two Column Layout)之间切换,点击视图右上角的三点菜单即可选择布局。两栏模式下左侧为目录树、右侧为当前目录内容,资源量大时两栏模式更高效。

Hierarchy视图

Hierarchy视图以树形结构展示当前打开场景中所有的GameObject游戏对象,是组织和管理场景内容的主要窗口。

我们在一个场景中创建的所有物体都可以在Hierarchy视图中找到,理解Hierarchy视图需要抓住两个要点:

  • Hierarchy展示的是对象之间的组织关系,不是资源,Project视图管理磁盘上的资源文件,Hierarchy管理场景中实际存在的对象实例,同一个Prefab资源可以在Hierarchy中出现多个实例
  • 对象在Hierarchy中的顺序基本无渲染含义(UI除外),2D精灵的遮挡关系由Sorting LayerOrder in Layer决定,3D物体由相机深度决定,Hierarchy中的排列纯粹是为了方便组织管理

父子关系

Hierarchy中游戏对象的父子关系以树形结构显示,直接拖放一个对象到另一个对象上即可建立父子关系,拖到空白处则脱离父对象成为根对象。

父子关系的核心意义在于Transform的级联,子对象的Position、Rotation、Scale都是相对于父对象的本地坐标,移动、旋转、缩放父对象时,所有子对象会跟随变换;这在组织复杂对象(例如一个角色由身体、武器、特效挂点组成)时非常重要。

注意:

  • 父对象被删除或禁用时,其所有子对象会一并被删除或禁用
  • 建立父子关系时 Unity 会默认保持子对象的世界坐标不变(自动重算本地坐标),如不希望如此可在 Inspector 中手动修正

多场景并排显示

Unity支持在编辑器中同时打开多个场景,在Project视图中将一个场景文件拖入Hierarchy视图,或以右键菜单Open Scene Additive方式打开,该场景就会以独立的节点并排显示在Hierarchy中,每个场景节点下挂着自己的对象树。

多场景编辑的常用操作包括:

  • 点击场景节点右侧的更多菜单,可以执行Set Active Scene(设为活动场景,新建对象默认进入该场景)、Save SceneUnload Scene(仅卸载显示但不移除)、Remove Scene等操作
  • 可以将对象从一个场景直接拖拽到另一个场景中
  • 活动场景名称会以粗体显示,但运行游戏时,最先加载的是Build Settings中的第一个场景,而不是活动场景

多场景拆分是组织大型工程的常用手段,例如把关卡场景和UI场景、常驻管理器场景分离,后续章节会进一步涉及相关内容。

搜索与筛选

Hierarchy视图顶部有搜索框,输入关键字即可实时筛选对象,只有名称匹配的对象及其祖先会显示出来,搜索框右侧可以切换筛选维度:

  • 按名称搜索(默认)
  • t:类型按组件类型筛选,例如输入t:Light只显示挂了Light组件的对象
  • 配合搜索框右侧的漏斗图标,还可以按是否激活等条件过滤

常用操作补充

  • 多选:按住Ctrl逐个点选,或按住Shift选择连续范围内的多个对象,多选后可在Inspector中批量编辑公共属性
  • 创建对象:点击Hierarchy左上角的+按钮或右键空白处,可创建空对象、2D 对象、3D 对象、UI、灯光、相机等;Ctrl+Shift+N可以快速创建空对象
  • 复制对象:选中后按Ctrl+D可复制对象,它是搭建场景时最常用的快捷键之一
  • 激活开关:对象名称左侧的复选框可快速启用、禁用对象,它对应脚本中的SetActive,被禁用的对象名称显示为灰色,不参与运行
  • 可见性开关:对象行右侧(悬停时会出现)的眼睛图标,只控制该对象在Scene视图中的显示,它用于编辑器中临时隐藏遮挡视线的对象,便于操作和点选,不影响游戏运行效果
  • 拾取锁定:眼睛图标旁的手型图标,锁定后该对象在Scene视图中无法被鼠标点选,避免误选中背景等大型对象

Scene视图

Scene视图中我们编辑的就是游戏世界本身。在 Scene 视图中可以选中游戏对象(相机、光源、模型、精灵等),并进行各种直观的摆放和调整操作。

改变观察的视角

视角坐标轴

非2D视图下,Scene视图右上角会出现坐标轴Gizmo,点击某个方向的控制杆,可以将观察视角快速对齐到该轴向,观察如顶视图、前视图等。右键点击坐标轴可以看到几个预置选项,默认观察方式是Free自由视角。坐标轴下方的文字按钮可以在透视图(Persp)正交视图(Iso)之间切换,透视图有近大远小的透视效果,符合人眼观察习惯,正交视图没有透视变形,各方向比例恒定,适合精确对位和2D开发。

抓手工具与视角导航

Scene视图左上角工具栏中,第一个按钮即为抓手(Hand)工具,选中抓手工具(快捷键Q)后,可以以当前视角为出发点改变观察角度。

  • 平移:拖动鼠标左键或在任意工具下直接拖动鼠标中键
  • 旋转:按住Alt拖动鼠标左键
  • 缩放:按住Alt拖动鼠标右键,或直接滚动鼠标滚轮

Flythrough模式

在透视图中,按住鼠标右键可进入Flythrough飞行模式,WASD可以控制视角前后左右移动,QE控制上下移动,按住Shift可以加速移动,同时移动鼠标可以旋转观察视角,就像FPS游戏的操作方式一样,在大型3D场景中漫游相当好用。

不过在正交模式下没有Flythrough模式,按住并拖动鼠标右键只有旋转和平移视角的功能,2D视图下则只能平移。

聚焦到某个对象

在Hierarchy中双击某个对象,或将鼠标悬停在Scene视图中然后按快捷键F,Scene视图的视角会自动移动并缩放到观察该对象的合适位置。这在场景中迷失方向或需要快速定位对象时非常实用,是使用频率最高的操作之一。

2D/3D模式切换

Scene视图工具栏右侧有一个2D按钮,点击即可在2D模式和3D模式之间切换:

  • 2D模式:视角锁定为沿Z轴俯视XY平面的正交视图,只能平移和缩放,不能旋转,适合编辑2D游戏场景和UI。创建2D模板的工程默认进入2D模式
  • 3D模式:完整的自由视角,可旋转观察三维空间

注意这个开关只影响Scene视图的显示方式,与工程是2D还是3D项目无关,任何工程都可以随时切换。

变换工具栏

前面介绍过的抓手工具之后,依次是各变换工具。

工具 快捷键 说明
Hand(抓手) Q 平移视角
Move(移动) W 沿坐标轴拖拽移动对象
Rotate(旋转) E 绕坐标轴旋转对象
Scale(缩放) R 沿坐标轴缩放对象
Rect Tool(矩形工具) T 面向2D对象和UI的复合工具
Transform(复合工具) Y 同时提供移动/旋转/缩放三组手柄
  • Rect Tool:主要用于2D对象(Sprite)和UI元素的操作,点击对象并拖动可以移动,点击矩形的角或边可以进行缩放和变形,它是编辑UGUI界面时的主力工具
  • 复合工具:结合了Move、Rotate和Scale,会同时显示三组手柄,适合需要频繁切换变换操作的场景

熟练使用Q/W/E/R/T/Y这组快捷键切换工具,可以显著提升场景编辑效率。

Center/Pivot

工具栏旁边有Center/Pivot切换按钮。

该按钮决定变换手柄中心的显示位置:

  • Pivot(轴心):手柄位于对象自身坐标轴的原点(3D模型制作时设定的轴心点,或2D Sprite设定的Pivot点),移动、旋转等操作都基于这个轴心点
  • Center(中心):手柄永远位于根据对象几何体(含所有子对象)计算出的包围盒中心

两者的区别在多选或存在父子关系时非常明显,例如Cube2是Cube1的子物体,选中Cube1使用旋转工具:

  • Center:两个Cube绕整体的物理中心旋转
  • Pivot:两个Cube绕Cube1自身的轴心旋转

再比如选中两个并列的Cube使用旋转工具:

  • Center:坐标轴出现在两个Cube的中间,两个Cube绕公共中心旋转
  • Pivot:坐标轴出现在某个Cube上,两个Cube各自绕自己的轴心旋转

Global/Local

如果存在父子关系,子对象除了在世界坐标系中有位置表示,还能通过本地坐标确定相对于父对象的位置。Global/Local按钮决定变换手柄的朝向:

  • Global:手柄对齐世界坐标系(X/Y/Z三个固定方向)
  • Local:手柄对齐对象自身的本地坐标系,对象旋转后手柄方向跟着旋转

沿对象自身朝向推拉位置时切到Local会更直观。

Scene 视图显示控制

Scene视图顶部有显示控制按钮排。

这排按钮用于控制Scene视图的显示效果,主要包括:

  • 绘制模式(Shaded/Wireframe等):控制游戏物体在Scene视图中渲染到什么程度
  • 2D切换:即前文所述的2D/3D模式
  • 光源、声音、天空盒、雾气开关:临时开关这些元素的Scene视图显示
  • Gizmos开关:控制是否在Scene视图中显示各类辅助图标和辅助线(包括相机视锥、光源范围、碰撞体线框、自定义 Gizmo 图标等)。Gizmos按钮旁的三角可展开详细列表,逐项开关某一类Gizmo,场景图标太多遮挡视线时可以在这里精简

注意:这些选项只影响Scene视图的编辑显示,不会影响最终游戏效果,纯粹是为了方便开发者操作场景而设计的。

Scene视图其他实用功能

  • 对齐吸附:移动对象时按住Ctrl,移动量会按Edit -> Grid and Snap Settings中设定的步长吸附,便于整齐摆放
  • 顶点吸附:使用Move工具时按住V,手柄会吸附到模型的顶点上,可将两个模型的顶点精确对齐
  • 相机书签:在Scene视图右上角相机图标菜单中可将当前视角保存为书签,方便在几个常用视角间快速跳转

Inspector视图

Inspector视图用于查看和编辑当前选中对象的所有属性,是日常开发中使用频率最高的窗口之一。

Unity中,GameObject游戏对象本身只是一个容器,它的全部能力都来自挂载的组件(Component),Transform、刚体、碰撞盒、脚本等都是通过组件组合形式,为GameObject提供基础能力。组件可以在一个GameObject上自由地添加和移除,每种组件都包含若干属性,这些组件和属性共同定义了一个GameObject。

选中一个对象后,Inspector从上到下依次是:

  • 对象基本信息区:激活复选框、对象名称、Tag、Layer、Static标记等
  • 组件列表区:该对象挂载的所有组件依次排列,每个组件是一个可折叠的面板。任何GameObject至少有一个Transform组件(UI对象为RectTransform),它记录对象的位置、旋转、缩放,不可移除
  • Add Component 按钮:位于视图最底部,点击后弹出组件菜单,可为GameObject搜索并添加新组件

注意:Inspector不仅会显示游戏对象,在Project视图中选中贴图、材质、脚本等资源文件时,Inspector也会切换为显示该资源的导入设置或资源属性;选中文件夹时则显示文件夹的基本信息。

组件的查看与编辑

组件面板中的每个属性都可以直接编辑,常见编辑方式包括:

  • 数值:直接输入,或在属性名上左右拖动鼠标快速增减
  • 枚举/标志:下拉框或多选下拉框
  • 颜色:点击色块打开取色器
  • 资源引用(Object类型字段):点击右侧圆点从弹窗中选择资源,或直接把资源从Project视图拖入字段
  • 向量(Vector2/Vector3):分量逐个输入,Inspector宽度足够时会折叠成单行显示

每个组件面板右上角有若干公共操作:

  • 帮助图标(问号按钮):打开该组件的官方手册页
  • 三点菜单Reset重置组件属性为默认值;Move Up/Down调整组件顺序;Copy/Paste Component在对象间复制组件配置;Remove Component移除组件;Paste Component As New将复制的组件作为新组件粘贴
  • 折叠三角:折叠/展开组件面板,组件多时可以保持界面清爽

组件名称左侧的复选框用于启用/禁用该组件,被禁用的组件不生效但配置保留。

添加组件

点击Inspector底部的Add Component按钮,会弹出组件选择菜单,我们可以直接在分类树中浏览所有组件,也可以在搜索框中输入名称快速定位。我们自定义的脚本会出现在Scripts分类下,同样通过这里可挂载到对象上。

注意:

  • 一个GameObject上可以挂多个同类型组件吗?大部分组件(如自定义脚本、碰撞盒)允许挂多个,但Transform、Rigidbody等少数组件只允许存在一个
  • 组件有RequireComponent机制,添加Rigidbody等组件时,Unity可能自动添加其依赖的组件,移除时也会提示依赖关系

Debug模式

Inspector有两种显示模式:Normal(普通)Debug(调试),点击Inspector标签页右上角的三点菜单即可切换。Debug模式下,Inspector不再使用组件定制的编辑器界面,而是直接显示对象的序列化字段原始数据。它的典型用途:

  • 查看和修改private字段,普通模式下只显示public[SerializeField]标记的字段
  • 查看某些在普通模式下隐藏的引擎内部属性,如对象的Instance ID、本地Euler角等
  • 排查序列化异常问题

注意:Debug模式下没有定制的编辑控件,如曲线编辑器、渐变编辑器都退化为原始数值,因此改完问题后应记得切回Normal模式。

多对象编辑

在Hierarchy或Scene视图中选中多个对象时,Inspector会显示这些对象共有的组件,对属性的修改会批量应用到所有选中对象。属性值不一致的字段会显示为横线或空值,输入新值后所有对象统一为该值。此外,多选时如果对象之间组件不同,只有交集部分的组件会显示。

多对象编辑常用于批量调整位置偏移、批量替换对象上的脚本参数、批量修改Layer/Tag等。

Inspector视图其他实用功能

  • 属性锁定:点击Inspector右上角的锁形图标可锁定当前检视内容,之后在Hierarchy/Project中切换选中对象也不会改变Inspector显示,方便实现类似“对着A对象的Inspector拖拽B对象做引用赋值”的效果,点击标签页三点菜单中的Add Tab -> Inspector还可以再开一个Inspector窗口
  • Preset预设值:组件面板右上角可将当前组件配置保存为Preset资产,之后可一键套用到其他对象的同类组件上
  • 运行期编辑不保留:运行模式下在Inspector中修改的属性,停止播放后会全部还原!想保留运行期调好的参数,可在运行时用组件三点菜单Copy Component,停止后再Paste Component Values

Game视图

Game视图显示游戏运行时相机实际渲染出的画面,即玩家最终看到的效果,在Game视图中我们可以运行、暂停、逐帧调试游戏。

播放控制

编辑器顶部中央的播放控制条包含三个按钮:

  • Play(播放,快捷键Ctrl+P:进入运行模式,Game视图开始实时渲染游戏画面
  • Pause(暂停,快捷键Ctrl+Shift+P:暂停运行,游戏逻辑停止推进,但可以随时恢复
  • Step(逐帧,快捷键Ctrl+Alt+P:在暂停状态下每点击一次推进一帧,用于精细观察物理、动画的逐帧变化

需要牢记的重要规则:

运行时的所有修改都不会保存。在运行模式下,我们依然可以在Inspector中修改属性、在Hierarchy中调整对象,效果会立即体现到游戏中,但这些更改会在停止运行后全部复原,包括运行中动态创建的对象也会一并消失。Unity会用轻微的界面变暗(可在Edit -> Preferences -> Colors中调整)提示当前处于运行模式。这个特性是一柄双刃剑:一方面可以放心地在运行时试验各种参数;另一方面辛苦调好的数值忘记记录就会丢失。补救方法是在运行时用组件三点菜单Copy Component,停止后Paste Component Values把数值粘回来。

分辨率与宽高比设置

Game视图左上角的分辨率下拉框(默认显示Free Aspect)用于控制Game视图的渲染尺寸,模拟游戏在不同屏幕上的表现:

  • Free Aspect:自由宽高比,画面随Game视图窗口大小自由拉伸
  • 预置项Full HD (1920x1080)16:9 Aspect16:10 Aspect等常用宽高比和分辨率
  • 自定义项:点击下拉框底部的+可添加自定义分辨率,例如为手机游戏添加1080x240019.5:9等特殊分辨率条目

开发需要适配多分辨率的游戏(尤其是UI)时,应养成经常切换分辨率下拉框验证布局的习惯。需要注意的是,Game视图只是预览,真实设备的最终效果仍需打真机包验证。

工具条选项

分辨率下拉框右侧依次是几个常用开关:

  • Maximize on Play:勾选后,点击播放时Game视图自动最大化占满整个编辑器区域,适合需要专注观察运行效果的场合。其下的Focus Selected等选项控制播放时窗口的焦点行为
  • Mute Audio:静音运行时的游戏声音,反复调试时保护耳朵
  • Stats:打开统计面板
  • Gizmos:控制Game视图中是否绘制Gizmos辅助图形(默认关闭),展开下拉列表可逐项开关。调试AI感知范围、路径点等场景时,在Game视图中打开Gizmos可以以玩家视角观察辅助线

Stats统计面板

点击工具条上的Stats按钮,Game视图右上角会叠加显示统计面板,实时给出当前画面的主要性能数据:

  • FPS/帧时间:当前帧率与每帧耗时
  • Batches/Saved by batching:渲染批次数量与合批节省的批次数,是渲染优化的关键指标
  • Tris/Verts:当前画面渲染的三角形与顶点数量
  • Screen:当前渲染分辨率与显存占用
  • SetPass calls/Shadow casters:渲染状态切换次数与投影体数量
  • Visible Skinned Meshes/Animations:可见的蒙皮网格与动画数量

Stats面板是开发期最轻量的性能观察手段,熟练使用后,在场景中摆放内容、调整光照时,看一眼Batches和Tris的变化就能对开销有基本判断。至于更深入的性能分析需要使用Profiler工具,我们将在优化相关章节专门介绍。

多相机与显示输出

如果场景中有多个激活的相机,Game视图默认显示Display 1的画面;相机的Target Display属性可将不同相机输出到不同的Display(最多可以设置8个),Game视图工具条最左侧的Display 1下拉框可切换查看。分屏游戏、多屏展示等场景会用到该功能。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。