- Unity 2017经典游戏开发教程:算法分析与实现
- 张帆
- 17264字
- 2020-06-24 23:19:11
1.3 认识Unity的编辑界面
当你第一次打开Unity(本书使用Unity 2017版本)时,显示的是Unity 2017的默认布局方式。在默认的界面布局方式中,显示了游戏开发中经常使用的界面窗口。当然,你也可以根据实际需要和习惯重新布局Unity的界面,如图1-16所示。接下来一一介绍这些界面的作用。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-18-1.jpg?sign=1739610812-02xKydxDdL4Ewit5p0kPDhqM5OOP9uhu-0-bbc88017265a65d6733ba3858a8e28cc)
图1-16 Unity默认编辑窗口
1.3.1 软件标题栏
所有的应用程序基本上都有标题栏,标题栏用于显示软件的一些信息。Unity的标题栏也具有同样的作用。这个标题栏显示了关于游戏工程,游戏场景和游戏发布平台的信息,如图1-17所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-19-0.jpg?sign=1739610812-woWf5PFcVaxYGrIVwrRer4Jy8gDWTqQf-0-4c933fc66841fc1139f2e7600c65312f)
图1-17 Unity 3D的标题栏
“Unity 2017.1.11 Personal(64bit)”表示该软件的名称和版本,“CompleteMainScene.Unity”表示当前打开场景的名称,“First Unity2017 Project”表示该工程的名称,“PC,Mac&Linus Standalone”表示该游戏的发布平台。如果标题栏后面加了一个“*”号,表示该场景做了修改之后还未保存。
1.3.2 主菜单
主菜单栏集成了Unity的所有功能菜单命令。我们可以通过菜单栏实现创作,如图1-18所示。每个下拉菜单的左边是该菜单项的名字,右边是其快捷键,如果菜单项名字后面有省略号,表示将打开一个对应的面板,如果后面有一个三角符号,表示该菜单项还有一个子菜单。如果安装了其他插件时,可能会在菜单中添加其他的选项。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-19-1.jpg?sign=1739610812-K2sd51NcK6MHAG9no7Bntd1CO7Fun83a-0-63e8699898ed0436a47284bcd8b7d85d)
图1-18 主菜单栏
1. File(文件)菜单包含创建、打开游戏工程和场景,以及发布游戏,关闭编辑器等,如图1-19所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-20-0.jpg?sign=1739610812-q5z2OB4bNWjy84IBcXF2zlq6yeQAhI9j-0-d3cc82006b63bb0f19895800ca603818)
图1-19 File菜单
● New Scene(新建场景):创建一个新的游戏场景,快捷键是【Ctrl +N】。
● Open Scene(打开场景):打开一个已经保存的场景,快捷键是【Ctrl + O】。
● Save Scene(保存场景):保存一个正在编辑的场景,快捷键是【Ctrl + S】。
● Save Scene as…(把场景另保存为……):把一个正在编辑的场景保存为另外一个场景,快捷键是【Ctrl + Shift + S】。
● New Project…(新建工程):创建一个新的游戏工程。
● Open Project…(打开场景):打开一个已经存在的工程。
● Save Project(保存工程):保存一个正在编辑的工程。
● Build Setting…(发布设置):发布一个游戏,通过这个菜单可以发布不同平台的游戏,快捷键是【Ctrl + Shift + B】。
● Build & Run(发布并运行):发布并运行该游戏,快捷键是【Ctrl + B】。
● Exit(退出):退出编辑器。
2. Edit(编辑)菜单包含了回撤、复制、粘贴、运行游戏和编辑器设置等功能,如图1-20所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-20-1.jpg?sign=1739610812-z8PfrqFJG92DECf1pzY73UlYsYkpHuIE-0-f8b4ee208febd1e2b88d659561e47797)
图1-20 Edit菜单
● Undo Selection Change(撤销):当你误操作之后,可以使用该功能回到上一步的操作,快捷键是【Ctrl + Z】。
● Redo(取消回撤):当你撤销次数过多时,可以使用该功能前进到上一步的撤销,快捷键是【Ctrl + Y】。
● Cut(剪切):选择某个对象并剪切,快捷键是【Ctrl + X】。
● Copy(拷贝):选择某个对象并拷贝,快捷键是【Ctrl + C】。
● Paste(粘贴):剪切或者拷贝对象之后,可以把该对象粘贴到其他位置。
● Duplicate(复制):复制选中的物体,快捷键是【Ctrl + D】,在Unity 3D中,该功能的使用比【Copy + Paste】更多。
● Delete(删除):删除某个选中的对象,快捷键是【Shift + Del】。
● Frame Selected(聚焦选择):选择一个物体后,使用此功能可以把视角移动到这个选中的物体上,快捷键是【F】。
● Lock View to Selected(锁定视角到所选):选择一个物体后,使用此功能可以把视角移动并锁定到这个选中的物体上,视角会跟随所选对象移动而移动,快捷键是【Shift + F】。
● Find(查找):可以在资源搜索栏中输入对象名称来查找某个对象,快捷键是【Ctrl + F】。
● Select All(选择所有):可以一次性选择场景中所有的对象,快捷键是【Ctrl + A】。
● Preferences…(偏爱设置):可以设置Unity的外观、脚本编辑工具、Android SDK路径等。
● Modules(模块管理):查看Unity各模块及其版本。
● Play(运行):点击可以运行游戏,快捷键是【Ctrl + P】。
● Pause(暂停):暂停正在运行的游戏,快捷键是【Ctrl + Shift + P】。
● Step(逐帧运行):可以一帧一帧的方式运行游戏,每点击一次,游戏运行一帧,快捷键是【Ctrl + Alt + P】。
● Selection(所选对象):包括Load Selection(载入所选)和Save Selection(保存所选)。Load Selection用于载入使用Save Selection保存的游戏对象,选择所要载入相应游戏对象的编号,便可重新选择的游戏对象,如图1-21所示。Save Selection用于保存当前场景中所选择的游戏对象,并赋予对应的编号。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-21-0.jpg?sign=1739610812-DMLu0JmiygSjwW8tEep7SajiOAgDPmtT-0-9bf6cf4f78778470db02c31a92113b7b)
图1-21 Save Selection
● Project Settings(工程设置):可以通过根据工程的需要设置该工程中的输入、音频、计时器等属性,如图1-22所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-21-1.jpg?sign=1739610812-up32hBoRCALvSPWI8tPt2v6rqu7O3l3i-0-0805f2098d38918957b94ab600265acf)
图1-22 Project Settings
● Network Emulation(网络模拟器):在开发网络游戏时,可以通过选择不同的网络带宽来模拟实际的网络。如图1-23所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-21-2.jpg?sign=1739610812-aTOvfDbQ3fyKtMEgUyeAQGiNqzUvmobC-0-bfe7612f3614b04de9a4448cd338e5d5)
图1-23 Network Emulation选项
● Graphics Emulation(图形处理模拟器):该选项可以模拟针对不同的图形处理API或者设备进行最终效果的模拟,如图1-24和图1-25所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-21-3.jpg?sign=1739610812-FySJDrSA5fnhtTGCw7yY7S5plrVq5FcN-0-5cf80923678a82e76fa73736825934a0)
图1-24 Pc图形处理模拟器
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-21-4.jpg?sign=1739610812-RKMpeeDGloVjBjy0NEdNPSx5BJlAD1NK-0-8f55fb2fd6a19950ff102b5f7fa83c49)
图1-25 Android和iOS图形处理模拟器
● Snap Setting…(捕捉设置):通过该选项,可以在编辑场景时对游戏对象进行移动、旋转和缩放的精度。如图1-26所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-22-0.jpg?sign=1739610812-2Grnx8JB99s1CiSUq7FRQwnulUd5T3sU-0-6060a7b7b9dc5f290e93f0735856312c)
图1-26 Snap Setting面板
3. Assets(资源)菜单:该菜单提供了对游戏资源进行管理的功能,如图1-27所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-22-1.jpg?sign=1739610812-VRaKSvVvZuMzGHMDbvDTjyIPPiG8byha-0-f073e6a32cdb2051df1c5c0f058d970f)
图1-27 Assets菜单
● Create(创建):新建各种资源。
● Show in Explorer(打开资源所在的目录位置):选择某个对象之后通过操作系统的目录浏览器定位到其在所在目录中。
● Open(打开资源):选择某个资源之后,根据资源类型以对应的方式打开。
● Delete(删除某个资源):其快捷键是【Del】。
● Open Scene Additive(打开附加路径场景):将选定的场景资源中的所有对象添加到当前场景中。
● Import New Asset…(导入新的资源):通过目录浏览器导入某种需要的资源。
● Import Package(导入包):在Unity 3D中,资源可以通过打包的方式实现资源的共享,并通过导入包来使用包资源。包资源的文件后缀是UnityPackage。
● Export Package…(导出包):通过在编辑器中选择需要打包的资源,并通过该功能把这些资源打包成一个包文件。
● Find References In Scene(在场景中找到对应的资源):选择某个资源之后,通过该功能在游戏场景中定位到使用了该资源的对象。使用该功能后,场景中没有利用该资源的对象会以黑白来显示,而使用了该资源的对象会以正常的方式显示,如图1-28所示。此图显示选择了Helipad这个资源后使用该功能的效果。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-22-2.jpg?sign=1739610812-f7s9aoLANZYZtvKrdn9EKLAWce5bGOXQ-0-80b0eb1d45685bedc04058a4fa94b683)
图1-28 在场景中找到对象所依赖的资源
● Select Dependencies(选择依赖资源):选择某个资源之后,通过该功能可以显示出该资源所用到的其他资源,比如某个模型资源,其附属的资源还包括该模型的贴图,脚本等资源。图1-29显示了CompleteTank资源的附属资源。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-23-0.jpg?sign=1739610812-b48HU6KJRNDDAOxD8dMzPsl7N28ktmxd-0-9f93a9c360608cb0f25dddc5acfee4e0)
图1-29 依赖资源显示
● Refresh(刷新资源列表):对整个资源列表进行刷新,快捷键是【Ctrl + R】。
● Reimport(重新导入):对某个选中的资源进行重新导入。
● Reimport All(重新导入全部资源)。
● Run API Updater…(驱动API更新器):更新API以满足各版本的部分不同功能以及脚本编写方法。
● Open C# Project(打开C#工程):打开可以编辑C#脚本的编辑器。
4. GameObject(游戏对象)菜单:该菜单提供了创建和操作各种游戏对象的功能,如图1-30所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-23-1.jpg?sign=1739610812-ifq8V1U0BIKxjNA9qY0DordrgdX7moUC-0-1a3bdf5044e6f8c9ddfe029e811773e4)
图1-30 GameObject菜单
● Create Empty(创建空对象):使用该功能可以创建一个只包括变换(位置、旋转和缩放)信息组件的空游戏对象。
● Create Empty Child(创建空的子对象):使用该功能可以创建一个只包括变换(位置、旋转和缩放)信息组件的空游戏对象作为子对象。
● 3D Object(3D对象):创建3D对象,如立方体、球体、平面、地形、植物等,如图1-31所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-24-0.jpg?sign=1739610812-SOzJrTyYhJoZYzIPat988e9mK4Uam1Zb-0-ec35c8c255f05446f7a299e52256f6d7)
图1-31 3D Object
● 2D Object(2D对象):创建2D对象Sprite精灵。
● Light(灯光):创建各种灯光,如点光源、平行光等,如图1-32所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-24-1.jpg?sign=1739610812-4JtreCsOooWEiDXDAkvrtBwv8zrSrTH7-0-6b5c36faacfec3c07103d52799d9c4e4)
图1-32 Light
● Audio(音频):创建一个音频源或音频混响区域。
● UI(用户界面):创建UI上的一些元素,如文本、图片、画布、按钮、滑动条等,如图1-33所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-24-2.jpg?sign=1739610812-zxgOpPrEYfEDrjGSofX2hNOt5FUwELbn-0-38c6d2cbf1da311ce14c7b06c0368387)
图1-33 UI
● Particle System(粒子系统):创建一个粒子系统。
● Camera(摄像机):创建一个摄像机。
● Center On Children(对齐父物体到子物体):使得父物体对齐到子物体的中心。
● Make Parent(创建父物体):选中多个物体后,点击这个功能可以把选中的物体组成父子关系,其中在层级视图中最上面的那个为父节点,其他为这个节点的子节点。
● Clear Parent(取消父子关系):选择某个子物体,使用该功能,可以取消它与父物体之间的关系。
● Apply Changes To Prefab(应用变更到预置):使用Prefab生成的对象通过在场景中编辑之后,可以把变更应用于资源库中的预置。
● Break Prefab Instance(断开预置连接):使用该功能可以使得生成的游戏对象与资源中的预置断开联系。
● Set as first sibling(设置为第一个子对象):使用该功能可以使选择的游戏对象在同一级中变到第一个位置。
● Set as last sibling(设置为最后一个子对象):使用该功能可以使选择的游戏对象在同一级中变到最后一个位置。
● Move To View(移动到场景窗口):选择某个游戏对象之后,使用该功能可以把该对象移动到当前场景视图的中心,快捷键是【Ctrl + Alt + F】。
● Align With View(对齐到场景窗口):选择某个游戏对象之后,使用该功能可以把该对象对齐到当前场景视图,快捷键是【Ctrl + Shift + F】。
● Align View to Selected(对齐场景视口到选择的对象):选择某个游戏对象之后,使用该功能,可以使得场景的视角对齐到该游戏对象上。
● Toggle Active State(切换活动状态):使得选中的游戏对象激活或者失效。
5. Component(组件)菜单:该菜单可以为游戏对象添加各种组件,例如碰撞盒组件、刚体组件等。Unity出色的地方便是以组件的软件架构来控制游戏对象,使得创作游戏的流程更具有灵活性。简单地说,在Unity中创作游戏就是不断地为各种游戏对象添加各种组件并修改它们的组件属性来完成游戏的功能。这里还要注意,菜单会根据你所添加的组件资源或者插件的不同而不同,其菜单列表也有所变动,如图1-34所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-25-0.jpg?sign=1739610812-RI3saJUH6qkauCRD45Yltz0l7XgVwkYS-0-b0e0c120f65e791cf5605e2437836862)
图1-34 Component菜单
● Add…(添加):为选中的物体添加某个组件。
● Mesh(面片相关组件):添加与面片相关的组件,例如面片渲染、文字面片、面片数据。
● Effects(效果相关组件):比如粒子、拖尾效果、投影效果等。
● Physics(武力相关组件):可以为对象添加刚体、铰链、碰撞盒等组件。
● Physics2D(2D武力相关组件):可以为对象添加2D的刚体、铰链、碰撞盒等组件。
● Navigation(导航相关组件):该组件模块可以用于创作寻路系统。
● Audio(音频相关组件):为对象添加与音频相关的组件。
● Rendering(渲染相关组件):可以为对象添加与渲染相关的组件,例如摄像机、天空盒等。
● Layout(布局相关组件):添加布局相关的组件,如画布、垂直布局组、水平布局组等。
● Miscellaneous(杂项):该选项列表可以为对象添加例如动画组件、风力区域组件、网络同步组件等。
● Scripts(脚本相关组件):可以添加Unity自带的或者由开发者自己编写的脚本组件。在Unity中,一个脚本文件相当于一个组件,可以使用与其他组件形似的方法来控制该组件。
● Event(事件相关组件):添加事件相关的组件,如事件系统、事件触发器等。
● Network(网络相关组件):添加网络相关组件。
● UI(用户界面相关组件):添加用户界面的相关组件,如UI文本、图片、按钮等。
● ImageEffects(图像效果组件):该组件可以为场景的摄像机添加各种后期特效组件,例如调色组件,运动模糊组件等等。该组件只有在Unity Pro版本中才能使用,而且你必须导入Image Effect资源包之后才能看到。
6. Window(窗口)菜单:该菜单提供了与编辑器的菜单布局有关的选项,如图1-35所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-26-0.jpg?sign=1739610812-gHrelefLAa5iKiwsLM61KSTgkvCjPJEl-0-700b61ea04f256c4a9418245981191bf)
图1-35 Window菜单
● Next Window(下一个窗口):从当前的视角切换到下一个窗口。使用该功能,当前的视角会自动切换到下一个窗口,实现在不同的窗口视角中观察同一个物体。其快捷键是【Ctrl + Tab】。
● Previous Window(前一个窗口):会将当前的操作窗口切换到编辑窗口。
● Layouts(编辑窗口布局):可以通过它的子菜单选择不同的窗口布局方式。
● Services(服务窗口):打开Unity官网提供的服务窗口,如打开广告功能模板等。
● Scene(场景窗口):创建一个新的场景窗口。
● Game(游戏预览窗口):创建一个新的游戏预览窗口,可以通过该窗口预览到游戏的最终效果。
● Inspector(属性修改窗口):创建一个新的属性修改窗口。
● Hierarchy(场景层级窗口):创建一个新的场景层级窗口。
● Project(工程资源窗口):新建一个新的工程资源窗口。
● Animation(动画编辑窗口):打开一个动画编辑窗口。
● Profiler(分析器窗口):打开一个资源分析窗口,可以通过该窗口查看游戏所占用的资源和运行效率。
● Audio Mixer(混音器):打开混音器窗口,可以通过该窗口处理音频。
● AssetStore(资源商店窗口):打开Unity官方的资源商店窗口,通过该窗口,我们可以购买到需要的插件和资源。
● Version Control(版本控制):打开版本控制工具窗口,可以通过该窗口查看详细的工具信息,看它们是否可用,以及如何使用它们。
● Animator(动画片制作窗口):可以通过该窗口来编辑角色动画。
● Animator Parameter(动画参数):打开动画参数控制窗口,可以通过该窗口处理动画。
● Sprite Packer(精灵打包器):打开精灵打包器窗口,用于创建2D资源素材。
● Editor Tests Runner(脚本编辑测试):打开脚本编辑测试窗口,使用NUnit库创建和运行测试。
● Lightning(光照):打开光照窗口来控制光照。
● Occlusion Culling(遮挡消隐窗口):通过该窗口可以制作遮挡消隐效果,对于大型场景来说非常有用。
● Frame Debugger(帧调试器):打开帧调试器窗口。
● Navigation(导航窗口):通过该窗口来生成寻路系统所需要的数据。
● Console(控制台窗口):通过该窗口,我们可以查看系统所输出的一些信息,包括警告、错误提示等。
7. Help(帮助菜单):帮助菜单提供了例如当前Unity版本查看,许可管理,论坛地址等。如图1-36所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-28-0.jpg?sign=1739610812-3Sw4RBvOU7HWthXKffkFd8ICp2xO4dKp-0-f629161d50ae5cd4310f058a34ef7157)
图1-36 Help菜单
● About Unity…(关于Unity):打开该窗口,可以看到Unity当前的版本和允许发布的平台,以及创作团队等信息。
● Manage License…(许可管理):可以通过该选项来管理Unity的序列号,例如购买了一个Android平台的发布许可,那么需要在这个窗口中重新输入允许发布Android平台的序列号。
● Unity Manual(Unity用户手册):点击该选项之后,会直接连接到Unity官网的用户手册页面上。该手册主要是介绍Unity的基本用法。
● Scripting Reference(脚本参考文档):点击该选项之后,会直接连接到Unity官网的脚本参考文档页面,该页面介绍了Unity提供的在脚本程序编写中所需要用到的各种类以及这些类的用法。简言之,就是Unity API的文档。
● Unity Services(Unity服务):点击该选项之后,会直接连接到Unity的官方服务页面,上面描述了Unity提供的以帮助开发者制作游戏,吸引、留住客户并盈利的各种服务。
● Unity Forum(Unity论坛):点击该选项之后,会直接连接到Unity的官方论坛,在上面可以发起各种帖子或者找到一些在使用Unity中所遇到的问题的解决方案。
● Unity Answers(Unity问答论坛):点击该选项之后,会直接连接到Unity的官方问答论坛,在使用Unity中遇到任何问题,可以通过该论坛发起提问。
● Unity Feedback(反馈页面):点击该选项之后,会直接连接到Unity的官方反馈页面,该页面有官方对用户的一些问题的反馈。
● Check for Updates(检查更新):检查Unity是否有更新版本,如果有,会提示用户更新。
● Download Beta…(下载测试版):点击该选项之后,会直接连接到Unity的官方网页,可下载Unity最新的测试版。
● Release Note(发布特性一览):点击该选项,会直接连接到Unity的发布特性一览页面上,该页面显示了各个版本的特性。
● Report a Bug(报告错误):当你在使用Unity时,发现的引擎内在错误,可以通过该窗口把错误的描述发送给官方。
以上简略介绍了Unity的菜单功能(以上菜单可能会因为引擎版本的更新而略有不同)。接下来,我们介绍在Unity中使用频率最高的几个窗口。
1.3.3 Project项目资源窗口
在该窗口中,保存了游戏制作所需要的各种资源。常见的资源包括游戏材质、动画、字体、纹理贴图、物理材质、GUI、脚本、预置、着色器、模型、场景文件等。该窗口可以想象成一个工厂中的原料仓库。通过该窗口右上角的搜索栏,可以根据输入的名称搜索资源,如图1-37所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-29-0.jpg?sign=1739610812-xXqXpJ3wiO9eZssECptgCTRz5yXxDsRE-0-f0f486f8c645e4601845e3f049955f62)
图1-37 资源项目窗口
窗口的左边栏是资源目录,你可以通过为工程创建各种资源目录来存放不同的资源,建议为各个目录命名一个有意义的目录名,这样方便我们管理资源。窗口的右边栏是资源目录中的具体资源,不同资源其图标是不一样的。
操作练习1 新建资源。
接下来介绍新建资源的方法。我们这里从新建一个工程开始。
[1] 选择菜单【File】->【New Project…】,此时会弹出Projects窗口,如图1-38所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-29-1.jpg?sign=1739610812-uf43DeOCpaliKog2SCKDxTkxssnJ8TBH-0-86c04dfd3be3c1e7a336250401fc7f22)
图1-38 Project对话框
[2] 在Project name输入框中输入工程名。
[3] 点击Location输入框右侧按钮,打开目录浏览器,定位到你要创建工程的地址,在其中新建一个目录,并命名为Chapter3-projectWindow(名称可根据你的需要来命名)。选择这个目录,并点击【选择文件夹】,如图1-39所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-29-2.jpg?sign=1739610812-ydgl9d6ikmeafOxCogAbTliuGuwXBafb-0-27dc64d8eaa9c10ed6d36df3b9f8e6ee)
图1-39 创建工程目录
[4] 回到Project创建窗口,点击【Create project】按钮,此时,一个新的工程就创建完成了(此时需要注意的是最好不要把工程放在中文名字目录下,并且该工程的文件名不要包含中文字符),如图1-40所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-30-0.jpg?sign=1739610812-FSBFEQUyDpt1J6UPt0LLimgST5ZHtMLz-0-615101be37fa184965d4464531a7a711)
图1-40 项目向导
[5] 可选择创建3D或2D工程,此处我们选择创建3D工程。
[6] Unity自动重启,此时编辑器中是空的,如图1-41所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-30-1.jpg?sign=1739610812-Xh9yVvgq4KBWYqmw6jh8uZdS9gidxnWv-0-71a87eeeeb343a6ab54dbf43305273ad)
图1-41 空的游戏项目
[7] 在Project窗口中点击鼠标右键,选择【Create】,在弹出的子菜单栏中选择【Folder】,此时会在Project窗口中生成一个空的目录,如图1-42所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-30-2.jpg?sign=1739610812-HRxuLpFj71lqT8AbmsysNouKrKDKj8jb-0-9a99c149e976468f06dad07d7415c53b)
图1-42 创建资源目录
[8] 刚新建文件之后,你可以直接输入新的文件名,如果不小心点到其他地方,便不能对文件夹名称进行修改,或者名称输入错误,此时可以选择该文件夹,按下键盘的F2键,便可以对它进行命名了。我们把它命名为_Scripts,以后这个文件夹用来保存脚本资源,如图1-43所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-31-0.jpg?sign=1739610812-xMiyVcnJcGq9cbz7pVWQ2bjWw1KttfUo-0-7bfe09a8bf78d927ac4b91c3629701d6)
图1-43 新建的目录
[9] 使用同样的方法,再新建下面的几个文件夹,_Animations(动画)、_Fonts(字体)、_Materials(材质)、_Objects(三维模型)、_Prefabs(预置)、_Scenes(场景)、_Sounds(声音)、_Textures(贴图)、_Shaders(着色器)。这些不同的目录将用于存放不同类型的资源,如图1-44所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-31-1.jpg?sign=1739610812-VUJKqa8XTq7tfIvzSPHhMpK1S5ZsFxal-0-d6417e879b46f609af7c675ea78521c5)
图1-44 最终的目录结构
[10] 创建子目录。双击进入_Objects目录,进入它的子层级,使用创建目录的方法,创建_Enemies(敌人模型)、_Environment(环境模型)、_Players(玩家角色模型)三个子目录。当在一个目录中有子目录时,在Project窗口中的目录层级中会在对应的目录左边出现一个三角形,该三角形表示此目录中有其他的文件夹。你可以通过双击该目录或者点击目录左边的三角形展开该目录,如图1-45和图1-46所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-31-2.jpg?sign=1739610812-gfBBHYh7wb1KcL3mCu6DoMgMuE6pIqYu-0-49adb3d4a472130da1edd27c1cfebfc3)
图1-45 子目录
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-31-3.jpg?sign=1739610812-9RyZv3fq6pencwnlsdhvxMdy5XBMBN0P-0-d2d9be41085100846053c1cc96bd2d7e)
图1-46 展开文件夹
[11] 点击_Materials目录,点击鼠标右键,选择【Create】,再选择【Material】,添加一个材质球,其默认名字为New Material,如图1-47所示。这样便在_Materials目录中新建了一个材质球资源。至于材质球怎么使用,我们在后面的章节会涉及。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-32-0.jpg?sign=1739610812-9tXvYRO9nfiDz0d7WloUjb40Wnw4Qrpo-0-eab8c2d9136c8f081fef15a0bc68e540)
图1-47 创建材质球
以上的步骤讲解了如何在Project窗口中创建新的资源的例子。
操作练习2 导入资源包。
我们先从导入Unity自带的资源包开始,讲解如何导入一个已经打包的资源。
[1] 在Project窗口中,通过鼠标右键打开其浮动菜单,选择【Import Package…】,再选择【Environment】,此时,它会对该资源包进行解压,并弹出一个窗口,如图1-48所示。这个窗口显示了这个包中包含的所有资源。你可以在这个窗口中选择你需要的素材,或者点击【All】按钮选择全部资源,或者点击【None】取消所有选择,在每个资源的左边有一个单选按钮,当出现“√”符号时,表示该资源被选中。点击【Cancel】时,取消该包的导入;点击【Import】按钮时,Unity便开始导入选中的包。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-32-1.jpg?sign=1739610812-8XI3qOjWfQ0l964g8qBxZ6bUCLtII7ZU-0-615acf6609701fb9f96d6edb6418b42f)
图1-48 导入的包的内容
[2] 导入Unity自带的资源包之后,其资源都保存在一个目录名为“Standard Assets”中。你可以打开这个包来观察其导入后的素材,如图1-49所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-33-0.jpg?sign=1739610812-JCC0C4VAEU7fFpQxwOul5TkaRz4QUOLf-0-48a83a0f9d16c9ee5ec1f39a24885d03)
图1-49 预览导入的包的资源
操作练习3 导入自定义包。
Unity商店中的很多资源都是以打包的方式出售,其文件的扩展名为.Unitypackage。当要使用其他开发者开发的包时,需要通过导入自定义包来导入资源,如图1-50所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-33-1.jpg?sign=1739610812-oNYQDCTT67lQ6pD86V22pFzbQQF81P7j-0-37ebf87d7b38be97a8edda245471d7ed)
图1-50 外部包
[1] 在Project窗口中,用鼠标右键打开浮动菜单栏,选择【Import Package…】中的【Custom Package…】,此时会打开文件浏览窗口,如图1-51所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-33-2.jpg?sign=1739610812-iSqwQJgzY0qWUQSeU5QJvcaPCjQqkC3r-0-95214b98b6fe4ac75ab4289548f21b95)
图1-51 搜索外部包
[2] 打开Resource目录,选中其中的iTween Visual Editor.Unitypackage(这个包是可以用于制作补间动画的插件)文件,最后选择【打开】按钮,接着同样出现Import Unity Package窗口,点击【Import】按钮,如图1-52所示。结果出现如图1-53所示的界面,表示正在导入资源。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-33-3.jpg?sign=1739610812-FPWsS2QNGt0Q96SzsuGpjL9uSWNmVQas-0-257308f4eda3ea123935a7c36e5852af)
图1-52 自定义包中的内容
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-33-4.jpg?sign=1739610812-2QUUu1bY511RdqGYKq4IDtIhEiOzHQJI-0-3a166f42e7ddace6c7872ba93c17831b)
图1-53 包导入进度条
[3] 导入该资源之后,其在project窗口中所在的目录位置以及其目录名称由该包来决定,如图1-54所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-34-0.jpg?sign=1739610812-ZizF8UDrLjKoh6N5UBF2cdnZp4i7S6pt-0-d4b6df0241f0328dbca9dc6cd4ab9a22)
图1-54 导入工程后的包资源
操作练习4 导出资源包。
当需要与别人共享你的资源时,可以将资源进行打包成一个资源包。接下来,介绍将资源进行打包的方法。我们将使用Unity的官方例子Tanks Tutorial工程作为例子。
[1] 选择【File】菜单,选择【Open Project…】菜单项,此时同样会打开Projects窗口,显示最近打开的工程列表,这个列表保存了你最近打开过的工程的名称和工程的路径,点击Tanks Tutorial工程,如图1-55所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-34-1.jpg?sign=1739610812-EW1gXk6Zy8PYFCcfZxWxRGknx0NGR6mo-0-17404e12ffecf5b8ad1c91ee9ae7dc20)
图1-55 打开工程向导面板
[2] 此时,Unity重新打开。接下来,假设我们要导出Animators目录、Materials目录、Modals目录和Scripts目录中所有的资源,选择这四个文件夹(多选操作可以按住键盘的【Ctrl】键不放并逐个选择资源),如图1-56所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-34-2.jpg?sign=1739610812-h8AHJ3qCtcKR7wOrk3G69DayOIYW2Kr9-0-85201118a95327a9dd5c89892c03e386)
图1-56 选择要导出的资源
[3] 把光标停放在某个已经选上的目录上,点击鼠标右键,打开子菜单栏,选择【Export Package…】选项栏,此时会出现一个【Export Package】窗口,在这个窗口中显示出所有需要导出的资源,你可以点击下方的【All】键来全部选择,或者选择【None】键来取消全部选择,或者你直接在列表中点击资源名称左边的“√”单项选择按钮来选择需要导出的素材。在窗口的正下方有一个单选按钮【Include dependencies】,如果该按钮勾选上,表示所有被关联的资源都会被导入到这个包中,即使一些被关联但是没有选择的资源也会同时打入到这个包中,如图1-57所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-35-0.jpg?sign=1739610812-g6JhXiZyFIyWaf7490lPTZ66X485wnny-0-4d7766f6695a36f29f66559d5cfce589)
图1-57 打包窗口
[4] 选择【Export…】按钮,会弹出一个目录浏览器,你可以选择你需要保存该包的目录位置,同时,在目录下方输入你要导出的资源的包的名称,如图1-58所示。点击【保存】按钮,如果出现如图1-59所示的界面,表示已经开始导出该包,并可以查看到导出的进度。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-35-1.jpg?sign=1739610812-YxOGeJjwA3xswgOgSvd12zkFRrga0je7-0-d0ad03a3c129e60ba17a73f6d7181a03)
图1-58 命名资源包的名称
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-35-2.jpg?sign=1739610812-JzezvxdqiVGyGFpYXZxxI24iLcJA3PDw-0-b0e30c69af25abd2e886dc596a121e57)
图1-59 导出资源包进度条
[5] 打完包之后,Unity会自动打开该包保存的位置,如图1-60所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-35-3.jpg?sign=1739610812-j2aXJdEeWpRqlEWX0Tzqt5lL7pgKmxt9-0-f36b9919ea5dc086fa3999126d838f69)
图1-60 完成资源包的导出
操作练习5 使用拖曳的方法导入已有的资源。
Unity允许我们直接在外部目录中把素材拖入Project窗口,这个操作会把该素材拷贝到工程的Assets目录下的特定目录中。
[1] 打开Chapter3-ProjectWindow工程或者你前面操作练习1使用的工程文件,在Project窗口中点击_Textures目录,当前该目录下没有任何资源,我们将把需要的贴图资源拖入该目录中,如图1-61所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-36-0.jpg?sign=1739610812-yx7vQJIHO3lvYm8BgOWCD0Zg9nsm2f5b-0-70b387c5d6fa62004f160a905c98be75)
图1-61 空的_Textures目录
[2] 打开操作系统的目录浏览器,打开Chapter3目录下的Texture目录,如图1-62所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-36-1.jpg?sign=1739610812-1LIdFQfczisYFW7RTmfpL01aSt6CYDJc-0-57a6ce096f4ac5eef15da24dccc53af4)
图1-62 外部资源
[3] 直接把该贴图拖曳到Unity中的Project窗口中,这样便在_Texture目录下完成了贴图素材的导入,如图1-63所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-36-2.jpg?sign=1739610812-DrmhLpMEBa8mSqdtKXYHrPeymCdB9ooT-0-4fab0508d1945969f1af5ac999682a8b)
图1-63 拖动外部资源到工程中
以上介绍的是Project资源窗口的基本操作,熟悉这些操作,可以提高游戏开发的工作效率。与此同时,需要强调的是,养成时刻为资源分类并整理的习惯,方便在开发过程中迅速找到需要的资源,尤其是当游戏非常庞大的时候更加尤为重要。
1.3.4 Hierarchy层级窗口
Hierarchy层级窗口是用于存放在游戏场景中存在的游戏对象。它显示的内容是游戏场景中游戏对象的层次结构图。该窗口列举的游戏对象与游戏场景中的对象是一一对应的。打开Tanks Tutorial工程,在Project窗口中双击打开CompleteMainScene场景,此时,Hierarchy层级也出现了对应的列表,如图1-64所示。左边便是Hierarchy窗口,右边的窗口是Scene的可视化窗口,该窗口在下一节介绍。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-37-0.jpg?sign=1739610812-JUmB9uA6TV3AAqWbs2W7ZLzUtnjt2uyJ-0-dad97fdd0cc0efa721feedd39dccf083)
图1-64 Hierarchy窗口
现在在Hierarchy窗口中选择任何一个对象,在Scene窗口中相应的游戏对象也会被选上,例如选择CompleteLevelArt对象,在Scene窗口中的对象也会被选上,如图1-65所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-37-1.jpg?sign=1739610812-8lBViKH6v5z4LF6GnobLR8IsKPR5MgZl-0-8f4b76ad1200c60ff38f24f9adfa188b)
图1-65 通过Hierarchy窗口选择场景中的游戏对象
接下来我们介绍如何使用Hierarchy窗口来创建一个游戏对象。
操作练习6 在Hierarchy窗口中创建简单的游戏对象。
[1] 新建一个工程,命名为Chapter3-HierarchyWindow。此时该工程中是空的。
[2] 此时查看Hierarchy窗口,可以看到只有一个MainCamera对象,该对象是主摄像机。当你选择摄像机时,在场景窗口中的右下角会出现一个预览窗口,这个预览窗口就是摄像机当前所看到的场景,如图1-66所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-38-0.jpg?sign=1739610812-bG9pwUHOL61COrSmhhPigWYHEPakIVtM-0-d5191450c4c8d538d31b3663c874d1d8)
图1-66 摄像机预览窗口
[3] 在Hierarchy窗口中,选择左上角的【Create】按钮,会弹出一个浮动菜单栏,该浮动窗口与菜单栏中【GameObject】的上部分一样,如图1-67所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-38-1.jpg?sign=1739610812-cpWioyq8a4kfw79mAcpuIK3h834jpNJh-0-2548c6ee6f432a6852bf65b4a0984ef6)
图1-67 对象创建菜单栏
[4] 选择【3D Object】-【Cube】,在场景中创建一个立方体,如图1-68所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-38-2.jpg?sign=1739610812-KWw7Kmn6RZBcVLqaFx9R25aKVy6HRs6S-0-21a6509d5aa7eee11bd689a5291a7dc4)
图1-68 创建的立方体对象
有读者会问,我在Hierarchy窗口中创建了一个Cube对象,应该是属于资源的一种,为什么在Project窗口中没有显示呢?在Unity中,有一些简单的对象属于内置的资源,可以直接通过Hierarchy窗口或者GameObject菜单来创建(例如摄像机、灯光和简单的几何体),而无须通过Project窗口来创建。
1.3.5 Scene场景窗口
Unity游戏引擎是一款所见即所得的游戏编辑系统,该系统可以通过可视化的方式对游戏场景进行编辑,从而为游戏开发人员提供直观的操作方式。在Unity中,游戏的场景编辑都是在Scene窗口中来完成的,在这个窗口中,我们使用游戏对象的控制柄来移动、旋转和缩放场景里面的游戏对象。当你打开一个场景之后,该场景中的游戏对象就会显示在该窗口上,如图1-69所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-39-0.jpg?sign=1739610812-RvhLwv740atYmFtDWgeK28QlrkrLNHRr-0-c61eb9222c9d6e7466280b0e14c27c78)
图1-69 Scene窗口
1. Scene View Control Bar(场景视图控制面板):视图控制面板用来控制场景视图的显示方式,它位于场景视图窗口的顶端,如图1-70所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-39-2.jpg?sign=1739610812-t73LnIFzgnNa0YpKZK111LfbaIKGKPEY-0-d29e5e86ccd21e38a253007ae8cfddad)
图1-70 场景视图控制面板
我们依次从左到右分别介绍该控制面板的功能。
● Shading Mode(绘制模式):控制面板的第一个下拉菜单第一部分用于设置场景编辑窗口的绘制模式,如图1-71所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-39-1.jpg?sign=1739610812-Elo5fudiOC32j9QLyrvamnX5hIhxcJTO-0-84075fe6c6f31af9cd5a0509c1347882)
图1-71 绘制模式菜单
● Shaded(贴图模式):以带有贴图的方式显示场景,如图1-72所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-0.jpg?sign=1739610812-ea8isNhTya9Dj3y6QUWn4CmQqFYf0fNx-0-08cf7549854db14567e12900febe9c9f)
图1-72 Shaded
● Wireframe(线框模式):以线框的方式显示场景,如图1-73所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-1.jpg?sign=1739610812-ARsZ1B7zdP3cM89vJ4mzJ3yO2L4J8ROU-0-be402b3b2606b9b8e7dd961fdba89dff)
图1-73 Wireframe
● Shaded Wireframe(贴图线框模式):以带有贴图和线框的方式显示场景,如图1-74所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-2.jpg?sign=1739610812-gOyQ7kdOPsWpZswKa4d2vtMlIACoFqMf-0-4891825c7dcd0008cbb865dbfcb30d1d)
图1-74 Shaded Wireframe
● Miscellaneous(渲染模式):控制面板的第一个下拉菜单第二部分用来设置场景视图的渲染方式。
● Shadow Cascades(阴影级联显示模式):显示阴影的渲染情况,如图1-75所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-3.jpg?sign=1739610812-r2cVPsNLYs5yxvVEYIYXlvVp8KMfeK9f-0-b91d9bd0dab21d94a207fc6f9f20b37d)
图1-75 Shadow Cascades
● Render Paths(渲染路径模式):采用颜色标记标记出场景中每个对象的渲染方式,绿色代表采用“延迟灯光”渲染,黄色代表“前向渲染”,红色代表使用“顶点着色”渲染,如图1-76所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-4.jpg?sign=1739610812-fSU6RB1XWcaVmgaj1o1iBC4a2Bii22NC-0-61daf67fb7d146ea06d1e65d5c9209c6)
图1-76 Render Paths
● Alpha Channel(Alpha通道模式):采用带有Alpha信息的方式渲染,如图1-77所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-6.jpg?sign=1739610812-MYIoEcJW82zpkV7ECvWo1y8O1eFzzcL3-0-e0d6eda19973025a2871149a54e39206)
图1-77 Alpha Channel
● Overdraw(透明轮廓模式):采用透明轮廓的方式,并使用透明颜色累积的方式来表示对象被重绘次数的多少,如图1-78所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-5.jpg?sign=1739610812-VZAQ5j7a4Nc8XwIQN19xGx4WzCN2Tzu2-0-c198cb2100d0300257051919e52ffb50)
图1-78 Overdraw
● Mipmaps(Mipmaps模式):采用颜色标记的方式来显示理想的贴图尺寸,红色表示该贴图的大小大于目前需要的尺寸,蓝色表示该贴图的大小小于目前需要的尺寸。当然,贴图的所需要的大小是根据游戏在运行时摄像机与物体贴图之间的远近来决定的。通过这个模式可以方便我们对贴图的大小进行调整,如图1-79所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-40-7.jpg?sign=1739610812-mNkbkAb9VZYF4E7xjskKGb4olhAUC8XS-0-e5f636d90a256bd75880148998411d9b)
图1-79 Mipmaps
● Deferred(延迟渲染设置):控制面板的第一个下拉菜单第三部分这些模式,分别可以用来查看渲染的每个参数具体情况(反光率、高光、光滑度和法线)。
● Global Illumination(全局光照):控制面板的第一个下拉菜单第四部分这些模式,分别可以用来帮助全局光照系统可视化,包含UV图、系统、反光率、发光、辐射、方向、烘焙等。
● Show Lightmap Resolution(是否显示光照贴图分辨率)。
2. 2D、Scene Lighting、Audition Mode And Game Overlay(2D视图切换按钮、场景灯光、音频控制和场景叠加)。绘制渲染模式按钮后面有四个按钮,如图1-80所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-41-0.jpg?sign=1739610812-OA0hoGwoAcxcOxQayVWfLWxpSpg5VCaD-0-8e88412c25b906730a2e6cd7f60dcfe6)
图1-80 场景渲染设置
第一个按钮用于场景的二维和三维视图之间的切换;第二个按钮用于控制采用默认的灯光照明还是采用场景中已有的灯光来照明;第三个按钮用于确定是否在场景编辑窗口中播放音频控制;第四个按钮用于是否显示出天空盒、雾效等。
● Gizmos(辅助图标设置):在场景中,例如灯光、摄像机、碰撞盒、音源等都会以辅助的图标标记出来,方便我们对这些对象进行控制,在最终的游戏画面中这些图标是不显示的。我们可以通过该面板来控制是否显示出这些图标,以及修改图标的大小,如图1-81所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-41-3.jpg?sign=1739610812-6tjznkhhsQb5knfBKeWkXdIiMOCxDBJB-0-4861ed7d557e0207b56893e9f03e0e2f)
图1-81 辅助图标设置面板
● 3D Icons,左边的单选按钮用于控制是否显示辅助图标,右边的滑动杆用于控制所有辅助图标的大小,如图1-82所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-41-1.jpg?sign=1739610812-CapgseMHWX37UTEgXUMdxCxo6oxEtsAq-0-5dc7bcf3184e9c97633dc84fe1ff7657)
图1-82 改变图标大小
● Show Grid,用于控制是否显示网格,如图1-83所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-41-2.jpg?sign=1739610812-NaM1gttVEKHVFfmoEOfWFG8kX6U0GlWW-0-0352103bb272415cdb8b703df38598ca)
图1-83 取消网格显示
● 下面的辅助图标可以控制某种特定类型的辅助图标的显示与否。
3. 视图变换控制:在场景视图的右上角,有一个视图变换控制图标,该图标用于切换场景的视图角度,比如自定往下、自左向右、透视模式、正交模式等,如图1-84所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-41-4.jpg?sign=1739610812-0MqkG1Og1fP8AqnaMpGgeJvPZ2SSP1Bm-0-2066deee3e03942314ca955173e8f027)
图1-84 视图控制手柄
该控制图标有六个坐标手柄以及位于中心的透视控制手柄。点击六个手柄中的一个,可以把视图切换到对应的视图中,而点击中心的立方体或者下方的文字标记可以切换正交模式与透视模式,如图1-85~图1-89所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-0.jpg?sign=1739610812-f9WouyyNhO6afufDt1h85RAxqOznaPfs-0-fc89cd16da8d966ff10ec29a33f04602)
图1-85 右视图
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-1.jpg?sign=1739610812-sdQXQCHesF8e4AEbWC0BH0ozfFo1jn35-0-5b29b1baeae68be3208d18b0dac6144d)
图1-86 前视图
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-2.jpg?sign=1739610812-Kv5pGzJG3RaVBYjvzuKbWqSpWMWMKwly-0-dce6ecae7ee323d755d923e4a12558ca)
图1-87 顶视图
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-3.jpg?sign=1739610812-kpNPC5M6ZXCFMbYVaZj4x9CiTuP648iQ-0-3c39f3d65f34c51eef725cd8064641d4)
图1-88 投影模式(近大远小)
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-4.jpg?sign=1739610812-kq1ke2qaTHsKOI7nNic1AMR40WpEXtgK-0-c9427365c15748f15b06ff7b164ff29c)
图1-89 正交模式(无近大远小效果)
当你在某种视图模式下,视图变换控制图标的下方已经标注出该视图的名称,注意到视图名称的左边有一个表示是否正交的或者透视效果的小图标,如图1-90和图1-91所示。可以通过点击该视图名称切换透视与正交模式。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-5.jpg?sign=1739610812-KPkUfzTz2eJU7XJECyjKUor47qOy9uPd-0-b155cf70e4ecfd1770d492e6eb312803)
图1-90 正交显示
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-6.jpg?sign=1739610812-aCjyWSSAkXeoQFxnQxoO26nFPpulNipC-0-61470f1dc98c1853e0b069c92594d6d8)
图1-91 透视显示
4. Scene View Navigation(场景视图导航)。使用视图导航可以让场景搭建的工作变得更加便捷和高效。视图导航主要采用快捷键的方式来控制,而且在Unity编辑器的主功能面板上的图标会显示出当前的操作方式,如图1-92所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-42-7.jpg?sign=1739610812-C2MdPRVi6WrAS2iz7dOgDpYiwHOvPRFf-0-c8388d92493fa38ddc499b400f991b66)
图1-92 第一个图标
● Arrow Movement(采用键盘方向键控制实现场景漫游)。点击场景编辑窗口,此动作可以激活该窗口,使用【↑】键和【↓】键可以控制场景视图的摄像机向前和向后移动,使用【←】键和【→】键可以控制场景视图摄像机往左和往右移动。配合【Shift】按键,可以让移动加快。
● (Focus)聚焦定位。在场景中或者Hierarchy窗口中选择某个物体,按下键盘的【F】键,可以使得视图聚焦到该物体上。
● 移动视图:快捷键为【Alt + 鼠标中键】或者直接使用鼠标左键,可以对场景视口摄像机进行平移。当处于场景编辑状态下,可以使用快捷键【Q】键来切换到场景导航操作。其图标为一个手形形状。
● 缩放视图:快捷键为【Alt + 鼠标右键】或者直接使用鼠标滚轮,可以对场景视口摄像机进行推拉操作,其图标为一个放大镜。
● 旋转视图:快捷键为【Alt + 鼠标左键】或者直接使用鼠标右键,可以对场景视口摄像机进行旋转,其图标是一个眼睛。
● 飞行穿越模式:使用键盘的【W、A、S、D键 + 鼠标右键】,可以对场景视口摄像机进行移动和旋转,配合鼠标的滚轮,可以控制摄像机移动的速度。
5. 场景对象的编辑。健全的游戏引擎编辑器,一般都是通过“所见即所得”的方式来编辑场景。场景的编辑可以通过移动、旋转和缩放物体来操作。在编辑器的左上角有一排按钮,这排按钮用于对游戏对象进行移动、旋转和缩放操作,如图1-93所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-43-3.jpg?sign=1739610812-zpS9EdPCWwYFxn2jwI01TvH4Dzl3inUe-0-869c49895afc79469d11dd3746fe06f9)
图1-93 场景对象控制按钮
第一个按钮是场景视口操作,在以上的内容已经讲解过;第二个按钮为对象移动按钮,可以对场景中的对象进行平移,快捷键是【W】键;第三个按钮为旋转按钮,可以对对象进行旋转,快捷键是【E】键;第四个按钮为缩放图标,可以对对象进行缩放操作,快捷键是【R】键;第五个按钮为矩形变换图标,可以对对象进行缩放、旋转操作,多用于UI元素,快捷键是【T】键。每种被操作的对象上都会有对应的操作杆,每种操作杆都会有相应的轴向控制柄,方便我们在视图中对它进行操作,如图1-94~图1-97所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-43-4.jpg?sign=1739610812-0aOZD1GeLAeWPfUGEae2MGdCMteXPaPn-0-bb0743678e2892f7ed407a56b8d91a58)
图1-94 移动
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-43-5.jpg?sign=1739610812-09vdUf99W9l2GuvOLyCPUypyIadzBRnP-0-ee56f07c33b23dfd1c5aa25f7cfcbabf)
图1-95 旋转
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-43-6.jpg?sign=1739610812-CHee6fHkLkV6KGqch6yz3SEGlrUWOFu3-0-c9f603eb04a06367f32574fcd6bb6704)
图1-96 缩放
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-43-7.jpg?sign=1739610812-Bci6qsvmsl1x2D4vqatHnCAx6MgOszyh-0-5e330dc04062677ccca8adce24dc6bc5)
图1-97 矩形变换
接下来,介绍如何在Unity中对场景进行编辑。
操作练习7 场景对象的编辑
[1] 打开Unity,新建一个工程,并命名为Chapter3-SceneEdit。
[2] 在Hierarchy窗口中点击【Create】按钮,弹出浮动菜单栏,选择【3D Object】-【Plane】,新建一个平面,如图1-98所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-44-0.jpg?sign=1739610812-GqCoeSHuC9fFAbW1LQrsOI1e3nxmu09p-0-dcd2bc78eb3c3ee365c56670d8a3a152)
图1-98 创建平面
[3] 在Scene窗口中选中该平面,使用【F】按键,使得该平面位于视图的中心,如图1-99所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-44-1.jpg?sign=1739610812-WrUfn3hGDX2hQmUaqZ2E3zGSRx73gJRn-0-fa277f9b45acc90340af4a82af0e3bf2)
图1-99 使视口中心对准平面
[4] 在Hierarchy窗口中点击【Create】按钮,弹出浮动菜单栏,选择Cube,新建一个立方体。如图1-100所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-44-2.jpg?sign=1739610812-Xw9mMin3SR9YZy920tasiOg6akQC3JfW-0-b65471cb51b4c66506132882d85458cf)
图1-100 创建立方体
[5] 在Scene窗口选中该立方体,如果比较难选中,我们也可以通过Hierarchy窗口选中Cube,接着按下【F】键,使得场景窗口的摄像机聚焦到立方体上(如果你使用Hierarrchy窗口来选择对象,那么在按下【F】键之前,先使用鼠标点击一个Scene窗口激活),如图1-101所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-45-0.jpg?sign=1739610812-4g04tZq2ijrG7gWnV4DpVi3DUT0EPYMH-0-506983220ec1aef5138aecc57d1d5e13)
图1-101 使视口中心对准立方体
[6] 点击【W】键,切换到对象移动操作上,选择y轴方向的操作柄,按住鼠标左键,拖动鼠标,向上拖动立方体,使得立方体在平面上面。移动操作柄共有三个:x轴向,相对于对象的左右方向,用红色来表示;y轴向相对于对象的上下方向,用绿色来表示;z轴向相对于对象的前后方向,用蓝色来表示。当激活某一个操作柄时,该操作柄会变成黄色。在移动操作柄中,如果你想在由两个轴向定义的平面内移动,可以选择该操作杆中心附近的操作平面(在平移操作模式下,按住键盘上的【V】键,进行顶点捕获,该功能可以使得操作点捕获该选中对象的某个点,同时移动该物体,可以使得该被选中的点对齐到场景中其他对象的点上),如图1-102所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-45-1.jpg?sign=1739610812-QrICyCDIsUp0VX92nCkfQq2thj92L6ft-0-97e3e32fc589be7f4a80d235c3182924)
图1-102 移动立方体
[7] 按住鼠标右键,拖动Scene窗口,使得视口中心在立方体的左边,如图1-103所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-45-2.jpg?sign=1739610812-FcuoUITWCINleE08mKSsprwV2TkSZ2n1-0-b095cf9d39a2b102aaf50c7899284e48)
图1-103 改变视口位置
[8] 在Hierarchy窗口中点击【Create】按钮,弹出浮动菜单栏,选择【3D Object】-【Cylinder】,创建一个圆柱体,如图1-104所示。此时会发现,在创建对象的时候,其对象放置的位置是根据视口的中心点来放置的。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-45-3.jpg?sign=1739610812-dHKYlCCkEKyyG69wucELHylpWJJfuFg0-0-93dda9ea6ec533e0067e03c622addedc)
图1-104 创建圆柱体
[9] 使用移动工具调整圆柱体的位置,如图1-105所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-46-0.jpg?sign=1739610812-atmTnM3V55E4AMfZ9uz71LOzOdfKcTOq-0-bdcbe41800eb79efa89abf9d45bfa7cc)
图1-105 调整圆柱体位置
[10] 点击【E】键,把对象操作工具切换到旋转操作,如图1-106所示。与移动工具相似,绕x轴旋转的操作环为红色;绕y轴旋转的操作环为绿色;绕z轴旋转为蓝色;绕视图视线方向旋转为最外圈的灰色操作环。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-46-1.jpg?sign=1739610812-iwaLrwM5PJU7eREFjT1BOfMYWRy7RjgY-0-8ce007c70c81cc45e07dfdce207cbe44)
图1-106 旋转圆柱体
[11] 选择绕z轴旋转的操作环,被激活的操作环会以黄色高亮显示,按住鼠标左键,拖动鼠标。对圆柱体旋转90°左右,如图1-107所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-46-2.jpg?sign=1739610812-G32JRwpkwNC6SMlLndwltUOYFHFKBprU-0-5b5d4fc1e02cfc6709473d1169b9f955)
图1-107 圆柱体绕z轴旋转90度
[12] 点击【W】键,切换到移动工具,调整圆柱体的位置,使得它接触到地下的平面,如图1-108和图1-109所示。此时会发现,移动操作杆的朝向改变了。这里需要注意的是,此时的操作杆的位置和朝向是与该对象的局部坐标系一致的。如果想使得操作杆的朝向与世界坐标系对齐,也就是x轴永远对齐左右方向,y轴永远朝向场景上下方向,z轴永远对齐场景的深度方向,可以使用最后一个按钮,该按钮用于切换操作杆对齐方式,Local表示对齐到局部坐标系,World表示对齐到世界坐标系。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-47-1.jpg?sign=1739610812-EZrwQhJOYYVo2DhZYYaxHf3OXZJotqiM-0-4491630a817b80c7389046f3a1ec03b9)
图1-108 局部坐标系
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-47-2.jpg?sign=1739610812-qxQpMvlJpi7oLqR4OwwfikPhMbnEIB4n-0-d7b91576b5a18690816ec8e0f41eb5f5)
图1-109 世界坐标系
[13] 对视口进行操作,使得视口中心位于立方体的前方空白处,如图1-110所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-47-3.jpg?sign=1739610812-QLwbMKp9rcuG4MyrYqTU5BJOGfb6PIWE-0-5840da9933ab28daed5517b060ecd8fe)
图1-110 调整视口
[14] 在Hierarchy窗口中点击【Create】按钮,弹出浮动菜单栏,选择【Sphere】,创建一个球体,如图1-111所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-47-4.jpg?sign=1739610812-DpWBuaK35Qj1kq91HsUANrGJ1mVDRjHs-0-86bf14668c0bf66d614748b8cbb0bd4b)
图1-111 创建球体
[15] 点击【W】键,切换到移动工具,选中球体,调整该球体的位置,如图1-112所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-48-0.jpg?sign=1739610812-xjQs2NKTlOqZ9EkVDMf0F08EmHce1ffd-0-6c7505c95dbacb57284e81df35346f89)
图1-112 调整球体位置
[16] 选中球体,点击【R】键,切换到缩放工具,如图1-113所示。缩放工具的轴向与移动工具的轴向相似。红色操作杆表示沿着x轴向缩放,绿色操作杆表示沿着y轴向缩放,蓝色操作杆表示沿着z轴向缩放,选择中心的操作杆可以使对象在各个轴向上等比例缩放。被选中的操作杆以黄色表示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-48-1.jpg?sign=1739610812-tF76I5m0z8WDMh3Uohj9JxZ6zMTlrF7M-0-e5c1ec8c65c9dfd13ec5bf42ac9d14eb)
图1-113 切换到缩放方式
[17] 选择中心的操作杆,按住鼠标左键,拖动鼠标,使得球体缩放到原来的一半,如图1-114所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-48-2.jpg?sign=1739610812-BIxvgW0DxADUbg7XvHrCAXzpyR135E9L-0-5b05c88e16a99cd9c06873a5ae16e3b6)
图1-114 对球体进行缩放
[18] 最后为场景打上灯光。在Hierarchy窗口中点击【Create】按钮,在浮动菜单栏中选择【Light】-【Directional Light】,创建一盏平型光,平行光对象在场景窗口中使用图标来表示,这样,整个场景就被照亮了(关于灯光的用法,在以后的章节会涉及),如图1-115所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-49-0.jpg?sign=1739610812-xC0xs8S4q9M8Fup2N448quVYRcypW5wl-0-4a3522c7519bffd6fe80bcc73365114b)
图1-115 为场景添加平行光
[19] 选择菜单中的【File】->【Save Scene】或者直接使用快捷键【Ctrl + S】对场景进行保存。此时会弹出一个目录浏览器,在文件名文本框中输入“SceneEdit”作为该场景的文件名,并点击【保存】按钮。该步骤使得场景被保存在你需要的目录为止,需要注意的是,场景文件一定要放在工程目录的Assets目录下或者该目录下的子目录中,如图1-116所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-49-1.jpg?sign=1739610812-XUHtr7cuD3CwDrpTb7WNOLNLFmP8wYG6-0-f3b8616bc00b09d1ce76dac71e412431)
图1-116 保存场景
[20] 保存完毕场景之后,在Project窗口中会出现一个场景的图标,直接点击该图标,便会打开该游戏场景了,如图1-117所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-49-2.jpg?sign=1739610812-ubahpH1wiacy1XYizEirJ7LOcHA6s7S2-0-3eda3f1d1f416879e359557646a4d51b)
图1-117 保存后场景的图标
操作练习8 控制场景编辑窗口的显示图层
在工具栏的最右边,有一个控制场景编辑器窗口的显示图层,如图1-118所示。该按钮名为Layers。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-50-2.jpg?sign=1739610812-KE0dhnBFEVgqsATCGtl9tt5XEZhRG0nx-0-5edca1ca37977fe0fe25c78fe5381a75)
图1-118 工具栏面板右边的Layers按钮
点击该按钮,会弹出一个浮动菜单栏,如图1-119所示。左边的【√】符号表示渲染出所有的层。如果选择【Nothing】选项,场景编辑窗口将不显示任何内容。如果选择【Everything】选项,场景将显示出所有层的内容。你也可以取消或者选择其中的某些图层。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-50-0.jpg?sign=1739610812-qP0W368tBPLni5pQ8XJWCo2rPBExFsMB-0-cddb8f1632296fadd1994048c1a598dc)
图1-119 Layer设置菜单
1.3.6 Inspector组件属性面板
使用Unity创作游戏时,游戏的场景都是由游戏对象组成,而游戏对象又包括了模型面片、脚本、音频等组件,我们已经知道,游戏对象的属性和行为是由其添加到该游戏对象上的组件来决定的。在Unity中,提供了一个添加组件和修改组件参数的窗口面板,该窗口便是Inspector组件参数编辑窗口。当选择某个游戏对象时,在Inspector窗口里便会显示出已经添加到该游戏对象的组件和这些组件的属性,如图1-120所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-50-1.jpg?sign=1739610812-KmC7tgFGHbSusQcTlg2zePkTPCDlWowF-0-5f0d998cceb4fb9ef97acbb3dc977a4b)
图1-120 右边窗口为Inspector窗口
该窗口中所显示的游戏对象中有几个固定的属性和组件,如图1-121所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-51-0.jpg?sign=1739610812-5yP57Atn9LjIb79oNnfeWplcJ0xcJrf2-0-37d61dce840093a3c3e70fe044cf1074)
图1-121 固定属性面板
1. 图标设置。在该栏的左上角是一个图标标记,用于标记不同的对象,这些图标可以根据我们的需要进行修改。点击该图标会出现一个面板,如图1-122所示。该面板可以修改不同的图标形状和图标的颜色。当点击【Other…】按钮时,会出现一个贴图列表面板,如图1-123所示,我们可以通过选择自定义贴图来修改该图标。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-51-1.jpg?sign=1739610812-Hup51mSZMRoFjX2mx8uE5KDgy5FFaaa9-0-a7c05ce771cf0baa0b2b010d70675765)
图1-122 图标设置
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-51-2.jpg?sign=1739610812-DaRxP8hlRiQzSjyVSjb7t9EtZgoqEzqV-0-97dbf32fe50b911a04d80c8992f8699c)
图1-123 自定义图标
2. 激活单选按钮Main Camera,该按钮可以用于控制游戏对象在游戏场景中是否被激活,当把这个钩去掉之后,该物体便不会在场景中显示了,并且所有的组件也会失效,虽然该物体仍然保留在场景中,如图1-124所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-51-4.jpg?sign=1739610812-ABX8xPon2vkXGQ8w7bL2dKkh0vYlQRhe-0-65738fdd79a93cc8b0f6d6359ee26706)
图1-124 注销游戏对象
3. 对象名称。在单选按钮的后面是一个文本输入框,可以通过该输入框修改游戏对象的名字,也可以在Hierarchy窗口中选择对象,按下键盘上的【F2】键来修改。
4. Static状态按钮。该按钮用于是否把该游戏对象设置成静态物体。对场景中一些静态的对象,可以把此状态按钮勾选上,一方面可以在一定程度上减少游戏渲染工作量,另一方面如果要对该场景中的游戏对象进行光照贴图烘焙、寻路数据烘焙和Occlusion Culling的运算,也要把该物体设置成静态物体。
5. Tag(标签设置)。为对象加上有意义的Tag标签名称。标签的主要作用是为游戏对象添加一个索引,这样可以为在脚本程序中使用标签寻找场景中添加了该标签的对象提供方便。标签,可以把它想象成某类游戏对象的别名。我们现在以班级为例子,我们知道,在一个班中有很多位同学,每一位同学都有自己的姓名,当你要叫某位同学帮忙打扫卫生时,你可以直接叫他的名字,但如果你想叫全班的同学一起过来,那么可以直接叫班级的名称,说“某某班级”的同学都过来帮忙打扫卫生,那么这个“某某班级”就是这个班级同学的标签,而每个同学的名字就是每个对象的具体名字。在Unity游戏场景当中,可以为多个游戏对象添加一个相同的标签,在以后的脚本编写时,可以直接寻找该标签,便能够找到使用该标签的所有游戏对象了。
6. Layer(层结构)。可以设置游戏对象的层,然后令摄像机只显示某层上的对象。或者通过设置层,让物理模拟引擎只对某一层起作用。
7. Prefab(预置操作)。当某个游戏对象是由Prefab预置生成的话,便会在此处显示该操作按钮。单击【Select】选择按钮,会在Project窗口中找到该对象所引用的Prefab;点击【Revert】恢复按钮,对当前对该对象所做的修改做回撤操作,并重新引用该对象所引用的Prefab的原有属性;点击【Apply】应用按钮时,可以把对该对象的修改应用到原来的Prefab上,此时,所有在场景中引用了该Prefab的游戏对象将会同步做修改,如图1-125所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-52-0.jpg?sign=1739610812-ZnANNUVGNWK1caf0wiCdxQGqSgyDOFr4-0-8dd24394ce8b1b79d35de30042b6add6)
图1-125 Prefab控制按钮
8. Transform(变换组件)。该组件是所有游戏对象都具有的组件,即使该游戏对象是一个空的游戏对象。该组件负责设置该游戏对象在游戏场景中的Position(位置)、Rotation(旋转角度)和Scale(缩放比例)。如果想精确地设置某个游戏对象的变换属性时,可以直接在这个组件中修改对应的参数。当一个游戏对象没有父物体时,这些参数是相对于世界坐标系上的,如果它具有父物体,那么这些参数是相对于父物体的局部坐标系的。
操作练习9 通过Transform组件操作游戏对象。
[1] 打开我们前面新建的工程Chapter3-SceneEdit,进入引擎之后,点击SceneEdit场景文件,打开该文件。如果场景编辑窗口中没有物体,我们可以在Hierarchy窗口中选择任意一个物体,接着激活场景编辑窗口,最后按下【F】键,使视图定位到该选择的物体上。
[2] 在Hierarchy窗口中选择Cube对象,点击【F2】键,修改它的名字为Box,按下回车,完成修改,如图1-126所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-53-0.jpg?sign=1739610812-E4GLe8DGf6Lnzq1AfWxKExbdF95wRwRN-0-c0711ffc071554eb7fcfd1f626431037)
图1-126 在Hierarchy窗口中修改对象名称
[3] 在场景编辑器中选择圆柱体对象,在Inspector窗口中改名为Column,按下回车,完成修改,如图1-127所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-53-1.jpg?sign=1739610812-XjxAxZa1TKb1658BQ5ADIW5JjfBPQgxH-0-62ca4a0ae46757a4569acd5ff3c9f51a)
图1-127 在Inspector窗口中修改对象名称
[4] 继续选择圆柱体,在它的Tranform组件中,设置Position(位置)中的X值为0,Y值为-1,Z值为-6.5,设置Rotation(旋转)中的Z值为270,结果如图1-128所示。可以看出,圆柱体的位置和旋转角度被精确地定义下来了。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-53-2.jpg?sign=1739610812-B0CHpqkwmaHlnnGdxsajZqLelz5LxvIv-0-67e3a86a0ad7e4ef7f74aa7e783d240c)
图1-128 在Inspector窗口中修改旋转角度
[5] 接下来,把Sphere改名为Ball,从以上步骤可以看出,修改游戏对象的名称可以通过Hierarchy窗口或者Inspector窗口来修改,如图1-129所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-53-3.jpg?sign=1739610812-ZE75z42Ph9U9EjtpmldGb0dSxD09YXHg-0-92f6931faf19ffb363b032ec4ed45ede)
图1-129 修改Sphere名称为Ball
[6] 选择Ball游戏对象,在Inspector中修改Ball对象的位置和缩放比例,如图1-130所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-53-4.jpg?sign=1739610812-qhsEdNZifvAWTRj2OZp3BHxpRqaJOiKx-0-e11b26ec81b74b66df4f35977f52ad39)
图1-130 通过Inspector窗口修改对象的缩放值
[7] 接下来,把Ball对象作为Column对象的子物体。在Hierarchy窗口中,选择Ball对象并按住鼠标左键,拖动该对象放置到Column对象上,如图1-131所示。放开鼠标,这样Ball对象就成为Column对象的子物体了,如图1-132所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-54-0.jpg?sign=1739610812-EX2ACbUfF28cuaaXLg9nA6TRQtng0n8h-0-25cdc96789554e39de663b577c0ae9a3)
图1-131 拖动Ball对象到Column对象上
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-54-1.jpg?sign=1739610812-01YpWBOFZB4Dtg5zMwLZ4p8giioQOknV-0-0d91bd5ab17c8119dfd6d2fa182e9bc3)
图1-132 Ball对象成为Column对象的子对象
[8] 对比Ball对象为Column对象的子物体前的坐标和成为Column对象的子物体之后的变化,可以发现,现在该坐标值是参考Column父物体的局部坐标系了,如图1-133所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-54-2.jpg?sign=1739610812-cL4yl4iwBnLEz1WcAUA8PsEeivLYepYw-0-6f286e28dec19152376520763d9576c2)
图1-133 Ball的坐标值变为以Column对象的坐标系为参考的值
[9] 现在,选择Column对象,此时其子物体也会被选上,对Column进行平移、旋转和缩放操作,可以看到Ball对象也参照父物体的变换而做相应的变换。而当操作子物体的变换时,父物体的变换并没有受影响。此时需要注意的是,当你在操作父物体的变换时,此时的子物体的变换中心点是在父物体的局部坐标轴中心点上。
[10] 取消父子关系。选择Ball对象并按住鼠标左键,把该对象拖出Column,此操作取消了Column和Ball对象之间的父子关系。
[11] 选择多个物体并同时进行变换操作。在Scene窗口,按住【Ctrl】键,逐个选择Ball、Box和Column对象,此时会发现,变换操作杆会逐步移动到最后选择的对象上,如图1-134所示。该操作杆最后决定了这几个被选择的物体的变换参考中心。当对这多个物体进行旋转时,其参考中心为最后选择的对象上,当对多个物体进行缩放时,其参考中心为每个物体的局部坐标系的中心(如果你是在Hierarchy窗口中选择多个物体,其变换操作杆将是第一个被选择的对象上,这个需要注意)。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-54-3.jpg?sign=1739610812-CVioL2XIvQoYC7gqICHB3Aw1dBXOm6B1-0-3061a5e669a06c7123895890b74fd64c)
图1-134 选择多个物体之后操作杆的位置变化
[12] 把多选的物体变换参考中心切换到所有被选物体的中心。在切换局部坐标与世界坐标系统的按钮右边,有一个可以用于切换多选物体参考坐标的按钮,如图1-137和图1-138所示。Pivot表示以单个物体的局部坐标系作为参考坐标,当点击这个按钮之后会把参考中心切换到多对象的中心上。这时,再对这些对象进行变换操作时,无论是移动、旋转还是缩放,都是以这几个对象的中心点为参考进行变换的。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-55-3.jpg?sign=1739610812-UgOx170dm8svN4AMLFc1TcifOzfvRj3D-0-130b36bd9e9342ddbabab85af0112c4b)
图1-135 Pivot模式
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-55-4.jpg?sign=1739610812-ZBACFZM3bQYB2M2pAoKIZEytc37bDOhp-0-5a0c98a9ac8bcb1727422517f9ce562d)
图1-136 Center模式
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-55-0.jpg?sign=1739610812-PNpt4scX3XTkRvblF4vXrMbV3vdKAAWk-0-78e384c972d2401cd9e1736c7d1aacfd)
图1-137 移动操作杆位置
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-55-1.jpg?sign=1739610812-OJknhqFpkZlb3mLKwhPx3pH4P9GzuvMf-0-c9d20e58b29dcf00542a5331ea4b9604)
图1-138 旋转操作杆位置
1.3.7 Game游戏预览窗口
在这个窗口中,可以预览到游戏的最终效果,如图1-139所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-55-2.jpg?sign=1739610812-lwq3Di1kaqtOJu9sOA0a0fuqgEJ8Q8MO-0-a2b40231ab1b99671835d0dd72030e2f)
图1-139 Game窗口
该窗口经常搭配工具栏上的播放、暂停按钮来使用,如图1-140所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-55-5.jpg?sign=1739610812-xnBV7C8Ii4Zc1O2qr44KMVDdK8BUKPGd-0-a153ae210cfd59a64670e8d3d9eebfae)
图1-140 游戏播放控制按钮
第一个按钮为游戏播放按钮,快捷键是【Ctrl + P】;第二个按钮为暂停按钮,快捷键是【Ctrl + Shift + P】;第三个按钮为逐帧播放按钮,快捷键是【Ctrl + Alt + P】。
1. Display:选择显示器,如果连接有多个显示器时,可以选择在哪个显示器上显示。
2. 分辨率设置。在Game(游戏预览窗口)的左上角是分辨率设置按钮,我们可以根据需要设置不同的播放分辨率。点击该按钮,会弹出一个浮动菜单栏,该菜单栏根据发布平台的不同而有所区别,如图1-141所示是PC平台下的分辨率设置。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-56-2.jpg?sign=1739610812-ZrgDq41TzAkjHei7wtUnhqYjh3Oma5r1-0-970648159a7d22206667e0351eb48b6b)
图1-141 PC平台下的分辨率设置
3. 【Maximize on Play】最大化按钮。当这个按钮处于按下的情况下,点击播放按钮,Game窗口会全屏化显示。
4. 【Mute audio】静音按钮。当这个按钮处于按下的情况下,游戏运行时不播放音频。
5. 【Stats】状态按钮。点击该按钮,会出现一个与游戏运行效率有关的面板,可以从这个面板中查看目前的游戏运行效率状态,如图1-142所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-56-0.jpg?sign=1739610812-u4sxFzATFqWkkBH9L11yMYLrCbPmMcHT-0-b707b7d90391077654e067e7f03f19c7)
图1-142 游戏运行效率统计窗口
6. 【Gizmos】辅助图标。当该按钮处于按下的情况下,会在该窗口中显示场景中的辅助图标,如图1-143所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-56-1.jpg?sign=1739610812-jPoKYv4DQICK146zSiGavzgHw9lcJufO-0-b1b10ab018957593a5aac34209237e8c)
图1-143 在Game窗口中显示辅助图标
1.3.8 Console控制台
控制台是Unity引擎中用于调试与观察脚本运行状态的窗口(最底下的为状态窗口,如果有信息输出时,双击状态栏的信息,便可以弹出控制台),当脚本编译警告或者出现错误,都可以从这个控制台中查看到错误的位置,方便我们的修改。白色的文本表示普通的调试信息,黄色的文本表示警告,红色的文本表示错误信息。控制台通常跟脚本编程息息相关,如图1-144所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-57-0.jpg?sign=1739610812-Z9w9TPXgww0Xkd39jHNOUD5w7IujFiri-0-b1ed6a3c91dad71bf42c85b1d3f8081f)
图1-144 控制台
在控制台中,选择某一条文本,可以在下方出现更详细的说明,如图1-145所示。
![](https://epubservercos.yuewen.com/91178B/13311752105166606/epubprivate/OEBPS/Images/48682-00-57-1.jpg?sign=1739610812-2RGxeGvRv4JdeXneP3As9GhsvxRRYE1e-0-c878e060bb919af10de4fc620a27702c)
图1-145 控制台输出的信息
● 点击【Clear】按钮,可以清除控制台中的所有信息。
● 点击激活【Collapse】按钮,合并相同的输出信息。
● 点击激活【Clear on Play】按钮,当游戏开始播放时清除所有原来的输出信息。
● 点击激活【Error pause】按钮,当脚本程序出现错误时游戏运行暂停。