![Unity 3D脚本编程:使用C#语言开发跨平台游戏](https://wfqqreader-1252317822.image.myqcloud.com/cover/192/46418192/b_46418192.jpg)
1.2 Unity 3D编辑器初印象
打开Unity 3D游戏引擎的编辑器,给我们的第一印象就是它由很多子窗口组成。默认情况下的Unity 3D编辑器,如图1-3所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_19_1.jpg?sign=1739980852-fW4cFGfPPvOQhj08IjriSUuUJ0nVXqdk-0-a40802a1efca91771f727885e3d681f3)
图1-3 Unity 3D编辑器界面
最常见的几种视图是:Project视图(项目浏览器视图)、Inspector视图(检视面板)、Game视图、Scene视图、Hierarchy视图(层级面板视图)以及工具栏。
1.2.1 Project视图
Project视图,或者也可以叫项目浏览器视图窗口,包含了所有被导入到当前Unity 3D项目中的素材。如图1-4所示,左侧的面板展现了项目的文件夹层级结构,其中左侧面板的上半部分是素材收藏夹,主要为了方便开发者能够轻松地访问经常需要使用的素材。而在右侧面板的正上方,在查看状态下会标识出当前被查看的文件夹路径,如图1-5所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_20_1.jpg?sign=1739980852-AWxcjFWKa95lWprtG2M1uceEeNwRvPi4-0-61263094c8bcc292df1e4382f5d50c0b)
图1-4 Project视图窗口
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_20_2.jpg?sign=1739980852-Za8cI8KZP3mP6cr4DSyJ8pjSczo1Q42O-0-cecbf533271ffae6250f9cdc5d5a2740)
图1-5 当前被查看的文件夹路径
而在素材搜索状态下,该区域将变成搜索区,会标识出根目录、当前目录以及资源商店的素材统计,如图1-6所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_20_3.jpg?sign=1739980852-g3ztvyGLn1ANUmlntbkFmKqTvXDEEZbp-0-92533e22d410f1df48ca3c111388fb23)
图1-6 搜索区
在项目浏览器视图窗口的最上方,则是一个工具栏,为开发者提供了添加、创建新素材,以及检索项目中素材的功能,如图1-7所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_20_4.jpg?sign=1739980852-cupW04DVo1F8nkVEdiQCFhh4qlgyBBm5-0-42b94f36ecfc7efc9072389079185900)
图1-7 Project视图面板的工具栏
单击“Create”按钮,弹出相应菜单,可以很方便地创建新素材,如图1-8所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_21_1.jpg?sign=1739980852-vqhTgI6Lr1wFMSsF0hJtzuB9nHN7IWtK-0-19edf07bd5f2db874e04bcf735f60914)
图1-8 创建新素材
而素材的搜索功能同样十分方便和强大,在搜索栏的右侧有3个按钮,可以用来进一步对搜索结果进行过滤,提高搜索的效率,如图1-9所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_21_2.jpg?sign=1739980852-UKrPcv81h24Dq1VbW53O8f6YpywVqdwD-0-51c1aeafc0f3982af2500b879d3292bc)
图1-9 根据类型过滤搜索结果
单击第一个(从左往右)按钮,弹出相应菜单,可以根据目标类型过滤搜索结果,如图1-10所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_21_3.jpg?sign=1739980852-lNrE81pPFCwHQCfk1Ly4IwDLYSfN2blG-0-2a57803e866fae6de4bb9c966e7a4b89)
图1-10 根据目标类型过滤搜索结果
单击第二个(从左往右)按钮,弹出相应菜单,则提供了根据素材标签来过滤搜索结果的功能,开发者可以自定义这些标签。
单击第三个(从左往右)按钮,弹出相应菜单,则提供了将搜索结果添加到前面提到的素材收藏夹中的功能。
作为项目的开发者,可以很方便地检索和管理导入到项目中的素材。
1.2.2 Inspector视图
Inspector视图窗口,如图1-11所示。它展示了当前被选中的Game Object的详细信息,以及该Game Object绑定的所有组件信息。比如自定义的脚本、物理部件、碰撞器等。在这里,开发者可以看到脚本中暴露出的各个变量,同时无论游戏运行与否,开发者都可以手动调整具体变量的数值。而在对应的组件后方会有一个齿轮样的图标,游戏开发者可以对该组件进行操作,如图1-12所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_22_1.jpg?sign=1739980852-uZoT9eMxnvezZ8xg20TssUlrQSuCbzTr-0-f6eb6d688aefbb83d504cc4b046fc2c7)
图1-11 Inspector视图窗口
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_22_2.jpg?sign=1739980852-ZdyjLBggCx6cVF0fUaPYYsTTS5gGEFji-0-20a1fab08741ca8503011fac30d296e3)
图1-12 对组件进行操作
在检视面板的最下方,则可以为该资源添加标签。这个标签可以作为项目浏览器视图中搜索素材的过滤条件,如图1-13所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_23_1.jpg?sign=1739980852-4Dm6WaGt1ukNJnsAldxTbPB91Cl2XpVE-0-7c76fdc7496860b9f71921836aa1f0ea)
图1-13 为资源添加标签
1.2.3 Hierarchy视图
Hierarchy视图窗口包括了当前场景中所有的对象,如图1-14所示。当有新的对象加入当前场景或有旧的对象从当前场景消失时,Hierarchy视图会同时更新。在这个窗口中,开发者可以通过拖曳的方式为当前场景中的对象指定父子关系。而其中的子对象将继承父对象的旋转以及移动。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_23_2.jpg?sign=1739980852-3aGWdj8JoezI1snvKp9lmC1a5OOx3TZ3-0-e3da0fd6f2d8b61f00e25eacd385197b)
图1-14 Hierarchy视图窗口
1.2.4 Game视图
Game视图窗口如图1-15所示。Game视图为开发者提供了一种“所见即所得”的功能。这个窗口展示的就是游戏发布后的运行画面,作为开发者,可以使用一个或多个摄像机来控制玩家在实际游戏中看到的画面。同时也可以立刻反映出在Scene视图中做出的调整。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_24_1.jpg?sign=1739980852-ho6oZfpRbeOFuZZZ1zRWKVGicNo98Guo-0-c2226d73ed32f35a7eef491034ffb113)
图1-15 Game视图窗口
和项目浏览器视图类似,在该面板的正上方同样是一个控制栏——游戏视图控制栏。其中最左边的是游戏视图宽高比下拉菜单,在这里你可以选择Unity 3D提供的宽高比,也可以自己定义所需要的宽高比,如图1-16所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_24_2.jpg?sign=1739980852-mag0Rz2nsX95tdTcCYrqSfGLKdlOLpbl-0-b89d595a8abe402e8dc1e4ec4b888609)
图1-16 设置游戏视图宽高比
游戏视图控制栏除了游戏视图宽高比下拉菜单,从左往右依次是Maximize on Play开关、Stats按钮以及Gizmos开关。
其中Maximize on Play开关用来控制游戏视图是否是100%全屏模式开启。若选中,则游戏视图会进入全屏模式。Stats按钮则会显示当前的渲染状态统计,可以用来监测性能,如图1-17所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_25_1.jpg?sign=1739980852-GEdmKvAFjpx3lKqsJQsbRTsbStIHLcQG-0-077f5e27bcc053fbbe3289e320dddc30)
图1-17 渲染状态统计窗口
若单击Gizmos开关,则开启Gizmos窗口,如图1-18所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_25_2.jpg?sign=1739980852-LqsAqsC78sNPH2UwKhIRtyOQ0CX8RZMZ-0-e80d4f67e8baf0bbdc73e0f1007cb494)
图1-18 Gizmos窗口
1.2.5 Scene视图
Scene视图即场景视图,如图1-19所示,是直接创建游戏的视图窗口。开发者需要在场景视图中选择和设置环境、玩家、相机、敌人以及其他游戏对象。作为游戏开发者,可以直接从项目浏览器视图中拖曳素材到场景视图中,也可以通过代码在游戏运行的过程中动态创建游戏对象。这些都会体现在场景视图中。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_26_1.jpg?sign=1739980852-QSfetnu0IIPRMTFsoN9Z8lZB6MQQkC9O-0-03966656b55fc4306191061451a97f97)
图1-19 场景视图窗口
而为了准确而快速地操作场景视图中的游戏对象,Unity 3D游戏引擎为我们提供了游戏对象的定位和操作工具,如图1-20所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_26_2.jpg?sign=1739980852-QGTvOOmXqcMAmBiCdmbZwm6jUWQOO9TT-0-c93e6e541a881817d058696f4be7652c)
图1-20 游戏对象的定位和操作工具
在编辑器的左上角有4种工具,分别是拖曳平移场景视图工具、游戏对象平移工具、游戏对象旋转工具、游戏对象缩放工具。
拖曳平移场景视图工具,顾名思义,可以用来平移场景视图(快捷键为Q)。
游戏对象平移工具,操作目标是游戏对象,可以调整游戏对象的位置。当对选中的游戏对象使用该工具时,被选中的游戏对象出现平移工具对应的Gizmo(即可视化操作辅助工具),如图1-2所示。此时可以通过拖动鼠标调整Gizmo的方式来调整游戏对象的位置,也可以在监视面板中直接修改Transform组件中的对应字段来调整游戏对象的位置(快捷键为W)。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_27_1.jpg?sign=1739980852-UZZT0anheQ5hiBjrG5RPMlnIgvAIvttf-0-b9ddc44f3e494f88894dfbcbcbdfbf57)
图1-21 调整游戏对象的位置
游戏对象旋转工具和游戏对象缩放工具的操作目标同样是游戏对象,分别调整被选定的游戏对象的角度(快捷键E)和大小(快捷键R),它们也分别有其对应的Gizmo,如图1-22和图1-23所示。此时同样可以通过拖动鼠标来调整Gizmo各轴的大小来对游戏对象进行旋转和缩放,也可以在监视面板中直接修改Transform组件中的对应字段来调整游戏对象的角度和大小。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_27_2.jpg?sign=1739980852-1JuCaHvv6dCK6TGKiEcQsUDOTFFbHRrN-0-a7446a702d16ce62d55d1b998af24e57)
图1-22 调整游戏对象的角度
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_28_1.jpg?sign=1739980852-Yp23R0Iqo3iFPTZst2mIYxWTOJKXmoln-0-799197b97a015d22e5fb40b09191aba6)
图1-23 调整游戏对象的大小
在场景视图窗口的正上方是场景视图控制条,如图1-24所示。在场景视图控制条中可以查看和设置场景中的各种选项,以及决定灯光和音频是否启用。需要注意的是,场景视图控制条上的修改仅仅影响开发中的场景视图,而不会对最终发布的游戏造成影响。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_28_2.jpg?sign=1739980852-opwq3hZgCSbkriQNCJJSm8AsbeZtTozi-0-0dd1bf03a90119cfef75698ce8a31cf9)
图1-24 场景视图控制条
场景视图控制条(从左往右)分别可以控制场景视图的绘图模式、场景视图的渲染模式、2D/3D视角切换、场景视图照明切换、音频试听模式切换,以及Effects菜单和Gizmos菜单。
1.2.6 绘图模式
单击“Textured”按钮,弹出绘图模式下拉菜单,如图1-25所示。此时弹出的下拉菜单中,有5种方案供我们选择,如表1-1所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_28_3.jpg?sign=1739980852-h9Hf0D2rtnI7xFBJvD3tjufY38VtRMbv-0-ba656676506d128047fe936202242129)
图1-25 绘图模式下拉菜单
表1-1 绘图模式种类
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_1.jpg?sign=1739980852-r5mhDDP9HJJKt3TFi7zIg1Z6qhoR0zCt-0-b3258a4e75423b63713c65605f7849bf)
选择不同的绘图模式,Unity 3D就会用相应的模式来描绘场景。Textured模式场景视图绘制效果,如图1-26所示;Wireframe模式场景视图绘制效果,如图1-27所示;Textured Wire模式场景视图绘制效果,如图1-28所示;Render Paths模式场景视图绘制效果,如图1-29所示;Lightmap Resolution模式场景视图绘制效果,如图1-30所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_2.jpg?sign=1739980852-vds0AKQbLvSF9dNbq4Qdp4qAAcOnUWjD-0-55095782c44c9c2187033df6edd1afee)
图1-26 Textured模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_3.jpg?sign=1739980852-v3OMeszt9zk1bfkYDEEupAFA3ygVpD9D-0-01efd257c0c17a1ad5daf525fcfda30f)
图1-27 Wireframe模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_4.jpg?sign=1739980852-e3CKuVNSuevrBouxq3pyohhYAMR4J06e-0-4297e775a30b4ad10d6983597f29bdc7)
图1-28 Textured Wire模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_5.jpg?sign=1739980852-g2XtvZrkvWYmUZY1mu9rlxmCUCj4OqHj-0-f837dda006fc73cab422d3bb409bbbef)
图1-29 Render Paths模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_6.jpg?sign=1739980852-F4mVaoQUJLVA421Cvx953WUImnnoBBZq-0-0e5474613a943a4a0ca468aa147e1b4d)
图1-30 Lightmap Resolution模式场景视图绘制效果
1.2.7 渲染模式
单击“RGB”按钮,弹出渲染模式下拉菜单,如图1-31所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_30_1.jpg?sign=1739980852-6VayNH9XavfJFQDyJ94T475dSEutLIXJ-0-03a6047cc8864ffe8c3ebd03e4254fc6)
图1-31 渲染模式下拉菜单
通过选择不同种类的渲染模式,场景视图将通过不同的模式渲染场景。Unity 3D游戏引擎提供了4种不同的渲染模式。
表1-2 渲染模式种类
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_30_2.jpg?sign=1739980852-UCgc1c4xW0zc6KhpkomDOlFVFGCi8XjD-0-27b1a72c1d4caebcd9340a38aa9a2547)
选择不同的渲染模式时,场景视图就会显示相应的渲染效果。RGB模式场景视图渲染效果,如图1-32所示;Alpha模式场景视图渲染效果,如图1-33所示;Overdraw模式场景视图渲染效果,如图1-34所示;Mipmaps模式场景视图渲染效果,如图1-35所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_1.jpg?sign=1739980852-RnDAA40qxJFgw0IULSV3mLGPRwJYSLTE-0-0c0de7e9bd59b7994c14c84f03042f7d)
图1-32 RGB模式场景视图渲染效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_2.jpg?sign=1739980852-sdnkz9hwnq7kbJYFxHH14qF4qqgrXApc-0-f87eff0389f70f845be6cf7e95f8949e)
1-33 Alpha模式场景视图渲染效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_3.jpg?sign=1739980852-NhrmrViTXYDm679O5DwMrwaA0xgYWTmV-0-edea9944f0f3d5d1ea4453568527965a)
图1-34 Overdraw模式场景视图渲染效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_4.jpg?sign=1739980852-UteAr7eoGSSZzsJX7HmY7tm4fOU5ChE8-0-a2f8c54d957b32d1e181fd433db03343)
图1-35 Mipmaps模式场景视图渲染效果
1.2.8 场景视图控制
场景视图控制开关,即 2D/3D视角切换开关、场景视图照明切换开关、音频试听模式切换开关,如图1-36所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_5.jpg?sign=1739980852-x5loYd7mbP9jVDOoPAgEvVGwpNgvRS0f-0-6cf78e725e4b5c0ab1c8e38eb63eae9b)
图1-36 场景视图控制开关
表1-3 场景视图控制开关的作用
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_32_1.jpg?sign=1739980852-mIeH48WMbNM8pNhovb9FxD44hDS1hfgS-0-37f134835ed80c9399c5c01d4c1fbbcc)
1.2.9 Effects菜单和Gizmos菜单
Effects菜单用来设置场景视图的渲染特效,而其本身又是所有特效是否开启的总开关。Unity 3D提供了4种场景视图的渲染特效供开发者使用,分别是Skybox、Fog、Flares和Animated Materials,如图1-37所示。Gizmos菜单主要用来控制那些为了方便开发者而在场景视图中渲染的图形。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_32_2.jpg?sign=1739980852-iNPTHVoCQjORocLsgASLryU4fYLS77QC-0-b54df7d53c43961abb375c2a9a8eb650)
图1-37 Effects菜单