Unity的使用(二):基本操作,快捷按键&组件和场景的关系

您所在的位置:网站首页 鼠标左键塌了 Unity的使用(二):基本操作,快捷按键&组件和场景的关系

Unity的使用(二):基本操作,快捷按键&组件和场景的关系

2023-11-21 05:04| 来源: 网络整理| 查看: 265

当我们创建好一个项目后,就会进入到一个默认的场景中。这是我们的第一步,任何一个伟大的作品,都是这么一步步走来的。那么,面对Unity引擎给我们的这个简单场景,我们又能做些什么呢?

一. Unity的界面介绍

这里以Unity2017为例,其它版本的Unity可能会多一些功能,但是总体应该差不了多少。 一个简单的场景 上图是总结的一个简单的Unity开发场景,各个面板布局是我自定义的一种比较喜欢的方式(布局是可以在右上角的Layout处设置的,也可以保存自己的布局方式)。可以看到一个面板上可以有不止一个视图,比如下方Console视图和Game视图放在同一个面板上。通过点击面板右上方的箭头或在视图标签上点击右键,可以添加新的视图(甚至可以重复添加)。

有几个比较复杂或位置不够的内容,就拿到下面说明了。

注解1:左侧可以在"Pivot"和"Center"间进行切换:当为Pivot时,表示该游戏物体在创建时指定的中心点,如果选中的是多个物体,那该坐标表示的是第一个选中物体的Pivot坐标;当为Center时,指的是Unity根据模型的mesh信息计算得到的中心位置,当选中多个物体时,其坐标是所有模型共同参与计算出来的坐标。右侧则是在"Global"和"Local"间进行切换:当为 注解2:是否关闭声音。 注解3:通过该Layers按钮,可以隐藏特定层级或锁定特定层级(被锁定层级中的游戏物体在Scene视图中无法用鼠标选中)。

内容补充:

Scene视图中对右上角的坐标系的快捷操作:左键或中键点击坐标轴快速转换到某一方向视角,或者右键转换(开发中,常用back视角);左击中间方块快速在透视投影和正交投影间切换,中键点击方块则是切换到透视投影的俯视45°视角;Hierarchy视图展现当前场景中有什么游戏物体,当该场景没有保存的话,该场景名为Untitled,可以Ctrl+S保存场景到Assets文件夹下;Project视图可以在面板的右上角设定显示为双列布局或单列布局(上图为双列),当为单列时直接展示Assets文件夹下的内容;Project视图上方的搜索不仅可以搜索Assets中的资源,也可以搜索资源商店中的资源; 二. 快捷操作和按键

其中部分快捷键可以通过Edit -> Preferences -> Keys里面进行设置。

变换工具(位于项目场景左上角) Q -- Hand (手形) 平移整个Scene视图(可用鼠标中键代替)   W -- Translate(移动) 移动选定的游戏对象 E -- Rotate(旋转)按任意角度旋转游戏对象   R -- Scale(缩放)缩放选中的游戏对象 T -- 横切面工具 可以沿着横截面缩放,绕着横截面中心点旋转(常用于2D开发中) Z -- Center 在Pivot和Center模式间切换   X -- Local 在Local和Global模式间切换播放控件(位于项目场景中间) Ctrl + P -- 播放按钮   Ctrl + shift + P -- 暂停按钮   Ctrl + Alt + P -- 逐帧播放菜单栏快捷键 File菜单快捷键: Ctrl + N -- New Scene 创建新场景   Ctrl + O -- Open Scene 打开场景 Ctrl + S -- Sava Scene 保存场景   Ctrl + Shift + S -- Save Scene as 场景另存为 Ctrl + Shift + B -- Build Settings 发布设置   Ctrl + B -- Build & Run 发布并运行 Edit菜单快捷键: Ctrl + Z -- Undo Selection Change 撤销上一步操作   Ctrl + X -- Cut 剪切 Ctrl + Y -- Redo 反撤销   Ctrl + C -- Copy 复制 Ctrl + V -- Paste 粘贴   Ctrl + D -- Duplicate 复制并粘贴 Shift + Del -- Delete 删除(不需要再点确认)   Ctrl + A -- Select All 选择全部 Ctrl + F -- Find 搜索,按名称查找物体   Shift + F -- Lock View to Selected 锁定到搜索到的物体 F -- Frame Selected 居中并最大化选中游戏物体(快速双击Hierarchy视图中游戏物体有相同效果) Selection大类,Ctrl + Alt + 数字键:保存在Hierarchy视图中选中了哪些游戏物体,Ctrl + Shift + 数字:读取之前的选中配置 Assets菜单栏快捷键: Ctrl + R -- Refresh 刷新场景 GameObject菜单栏快捷键: Ctrl+ Shift + N -- Create Empty 创建一个空的游戏对象   Alt + Shift + N -- Create Empty Child 创建一个空的子物体 Ctrl + Alt + F -- Move to New 移动选中对象到视图中心点   Ctrl + Shift + F -- Align With View 将选中物体移动到当前视角处 Ctrl + - --Set as last sibling 将选中物体作为最后一个子物体  Ctrl + = -- Set as first sibling 将选中物体作为第一个子物体 Alt + Shift + A -- Toggle Active State 激活或激死选定的游戏物体 Component菜单栏快捷键: Ctrl + Shift + A -- Add 添加组件 Window菜单栏快捷键: Ctrl + Tab -- Next Window 下个窗口   Ctrl + Shift + Tab -- Previous Window 上个窗口(用于多个视图重叠时) Ctrl + 1 -- Scene 打开Scene视图   Ctrl + 2 -- Game 打开Game视图 Ctrl + 3 -- Inspector 打开Inspector视图   Ctrl + 4 -- Hierarchy 打开Hierarchy视图 Ctrl + 5 -- Project 打开Project视图   Ctrl + 6 -- Animation 打开Animation视图 Ctrl + 7 -- Profiler 打开Profiler视图   Ctrl + 8 -- Audio Mixer 打开Audio Mixer视图 Ctrl + 9 -- Asset Store 打开Unity资源商店   Ctrl + 0 -- Asset Serve 打开资源服务器 Ctrl + Shift + C -- Console 打开控制台Scene视图视角移动 按住鼠标中键 + 拖拽 -- 平移整个视图   滑动鼠标中键 -- 快速缩放视图 Alt + 鼠标左键拖拽 -- 以当前视图中心点为基准点进行旋转   右键拖拽 -- 以自身为基准点旋转 Alt + 鼠标右键拖拽 -- 进行平滑缩放视图   鼠标右键 + W/A/S/D/Q/E -- 向前/后/左/右/下/上移动浏览视图 鼠标右键 + W/A/S/D/Q/E + Shift -- 向前/后/左/右/下/上快速移动浏览视图补充快捷键 F2 -- 重命名   Alt + 鼠标左键点击Hierarchy视图中游戏物体子物体展开箭头 -- 展开或收起对象所有子物体 Shift + 空格 -- 对当前窗口进行最大化或恢复 选中游戏物体 + V -- 在Scene视图中定位到距离鼠标最近的该物体身上的顶点,可选中拖动 Ctrl + 拖拽游戏物体 在Scene视图中以一定的增量来改变游戏物体的属性(增量在Edit -> Snap Settings中设置) 三. 组件,游戏物体和场景

创建项目后进入Untitled场景中,Unity给我们提供了两个默认游戏物体:Main Camera和Directional Light。我们在进行开发时,操纵的对象也主要是游戏物体。

选中一个游戏物体,我们可以在Inspector面板上看到它会挂有一些组件,如:Transform, Camera等。我们创建出来的游戏物体都是一样的,正是通过组件来实现不同游戏物体的独特功能。组件也可以像游戏物体一样,通过左上方的勾来启用或者关闭(通过组件脚本中的enabled属性来实现)1。

所有游戏物体构成一个场景,使用Ctrl + S保存场景到Assets文件夹中(场景也是资源,必须放在Assets文件夹内)。使用Notepad++打开刚才保存的Unity场景文件2,看下图: 一个Scene场景内部 场景文件中预制体记录的是相对原预制体的改变之处3,这样只需要引用原预制体meta文件,并将场景文件中记录下的修改应用到meta文件中,就可以再现在该场景中预制体的样子了(因此预制体节约内存又方便)。

我们再点开一个上图场景中的一个游戏物体,同时开启Inspector的Debug模式: Inspector的Debug模式 可以看到: 文件和场景中物体引用关系 其中,!u! + 数字ID表示不同的组件类型,具体ID对应关系参阅官方文档,其中114对应的是MonoBehaviour。而游戏物体上的InstanceID是Unity中一个实例的ID,每一个Unity实例都有一个,在运行时可以使用UnityEngine.Object的GetInstanceID获取,但是,每一次运行相当于生成新的实例,这个值是可变的。

因此,场景信息的保存原理因此也显而易见了:场景文件记录了每个场景中的游戏物体,每个游戏物体记录该游戏物体身上组件的FileID,在需要引用时根据FileID查找文件中的组件;而组件内记录在该场景中的初始化数据(即场景中组件记录的数据会覆盖脚本中给公有变量定义的数据)。

不是所有组件左上方都有勾,像基础组件Transform, Mesh Filter就没有。是因为这类组件它只是起到一个存储信息的作用,其内部并没有用到生命周期函数。 ↩︎

Unity中所有序列化文件都是使用YAML语言来编写的,所以这里要将Notepad++的语言设置为YAML。 ↩︎

我们对预制体的更改会应用到该预制体的实例身上,前提是实例并没有在相应的地方进行修改。若在场景中的实例对自身进行了修改,其修改的属性在Inspector视图会变粗,也不再受预制体影响,因为场景文件记录下了该修改,并会将该修改应用到场景中的实例上。 ↩︎



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3