- Unity 3D脚本编程:使用C#语言开发跨平台游戏
- 陈嘉栋
- 3015字
- 2023-02-28 19:22:06
1.2 Unity 3D编辑器初印象
打开Unity 3D游戏引擎的编辑器,给我们的第一印象就是它由很多子窗口组成。默认情况下的Unity 3D编辑器,如图1-3所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_19_1.jpg?sign=1739158504-nMM1FKBJ1tK68naGtZCUUSBZNI2hHygJ-0-53fe371223ce79d3e95972374a6d9051)
图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=1739158504-3A36iWVsIn5cJ0wN84R7oPYvvaraqqUs-0-858d4c12f252fa957190603846ce173a)
图1-4 Project视图窗口
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_20_2.jpg?sign=1739158504-FOLnNDpSUHrgoNmACVtjZ22nMFeoWDPp-0-8fbf3ceeffa07ad402ae0d63846624b7)
图1-5 当前被查看的文件夹路径
而在素材搜索状态下,该区域将变成搜索区,会标识出根目录、当前目录以及资源商店的素材统计,如图1-6所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_20_3.jpg?sign=1739158504-Co4LD7ug3dWdndzzTGDaULcqFMxkRl7T-0-a831845c40b12e38d909d3372551cadd)
图1-6 搜索区
在项目浏览器视图窗口的最上方,则是一个工具栏,为开发者提供了添加、创建新素材,以及检索项目中素材的功能,如图1-7所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_20_4.jpg?sign=1739158504-VP6e4r06A7wZJEPBXEBN5u55zKQSOVn6-0-6b461b7774c95e8acfffeadb7271485d)
图1-7 Project视图面板的工具栏
单击“Create”按钮,弹出相应菜单,可以很方便地创建新素材,如图1-8所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_21_1.jpg?sign=1739158504-xMwxmVjBEzeJ33qERv4B2C182URtzH0o-0-8b33d3ed9299eab78f0f85f0e1774f0c)
图1-8 创建新素材
而素材的搜索功能同样十分方便和强大,在搜索栏的右侧有3个按钮,可以用来进一步对搜索结果进行过滤,提高搜索的效率,如图1-9所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_21_2.jpg?sign=1739158504-MdaCnHRIFCwzuULBAOYFHGzBZ9RRWjuj-0-72a6173d8ac67abf3b59a509d011dcfc)
图1-9 根据类型过滤搜索结果
单击第一个(从左往右)按钮,弹出相应菜单,可以根据目标类型过滤搜索结果,如图1-10所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_21_3.jpg?sign=1739158504-HoCGI9Zoxty1C3vCPnTOr6kfuh34N8DQ-0-8ca16189ce78e96daf5bb326923662b9)
图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=1739158504-t3VHDec9Cjo7EXxPLP7BCWcu0qEgcOP7-0-f7a3ab36f6811cf2528941ee7df1eba0)
图1-11 Inspector视图窗口
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_22_2.jpg?sign=1739158504-oO0qNP5dfxYQbyreGXtjv5F1tAM8vQsG-0-833c74935795d05b49e0cc2197aa0715)
图1-12 对组件进行操作
在检视面板的最下方,则可以为该资源添加标签。这个标签可以作为项目浏览器视图中搜索素材的过滤条件,如图1-13所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_23_1.jpg?sign=1739158504-1vHtf0gfIpK0fcqwFwCsHSXGfiuJbHKe-0-e7615422f0b7e610c97296a7a4c8f847)
图1-13 为资源添加标签
1.2.3 Hierarchy视图
Hierarchy视图窗口包括了当前场景中所有的对象,如图1-14所示。当有新的对象加入当前场景或有旧的对象从当前场景消失时,Hierarchy视图会同时更新。在这个窗口中,开发者可以通过拖曳的方式为当前场景中的对象指定父子关系。而其中的子对象将继承父对象的旋转以及移动。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_23_2.jpg?sign=1739158504-Tbbsd6BCDHeoc0ke44GDftV3Pndw9gfC-0-b8b2e66459a9d673893967604bd6785b)
图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=1739158504-5BcFUiteL8Bk872zxFvBrhJslOzzaf8n-0-131b9286e1bfe5fc8e2cbf2c7076e7b0)
图1-15 Game视图窗口
和项目浏览器视图类似,在该面板的正上方同样是一个控制栏——游戏视图控制栏。其中最左边的是游戏视图宽高比下拉菜单,在这里你可以选择Unity 3D提供的宽高比,也可以自己定义所需要的宽高比,如图1-16所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_24_2.jpg?sign=1739158504-26SfJPDxTZm61IJ2uIOkYq9EhFnH2DDj-0-9ea44b159fd7b8d55a4310754c61a489)
图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=1739158504-3PPOr6oqaAlaHfoHwQFr00GWPMxMwMSD-0-4750edcbe5708a92bc4c016ce1a3ccca)
图1-17 渲染状态统计窗口
若单击Gizmos开关,则开启Gizmos窗口,如图1-18所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_25_2.jpg?sign=1739158504-Cs2Rb5UStrapmXAnPyuh51mK7BYqwoSD-0-932bfa16f90fc0f0d41b1d43848951b1)
图1-18 Gizmos窗口
1.2.5 Scene视图
Scene视图即场景视图,如图1-19所示,是直接创建游戏的视图窗口。开发者需要在场景视图中选择和设置环境、玩家、相机、敌人以及其他游戏对象。作为游戏开发者,可以直接从项目浏览器视图中拖曳素材到场景视图中,也可以通过代码在游戏运行的过程中动态创建游戏对象。这些都会体现在场景视图中。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_26_1.jpg?sign=1739158504-9NDFuq5pPUVTO26WmxihcrKOK8jz6aml-0-aa141a758e2c2e7939f2e486414870e4)
图1-19 场景视图窗口
而为了准确而快速地操作场景视图中的游戏对象,Unity 3D游戏引擎为我们提供了游戏对象的定位和操作工具,如图1-20所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_26_2.jpg?sign=1739158504-mtPUsE0ZRrDAci3vA8RptdwaPR9UCZRk-0-22004c28a4b4184764b076625ccbd014)
图1-20 游戏对象的定位和操作工具
在编辑器的左上角有4种工具,分别是拖曳平移场景视图工具、游戏对象平移工具、游戏对象旋转工具、游戏对象缩放工具。
拖曳平移场景视图工具,顾名思义,可以用来平移场景视图(快捷键为Q)。
游戏对象平移工具,操作目标是游戏对象,可以调整游戏对象的位置。当对选中的游戏对象使用该工具时,被选中的游戏对象出现平移工具对应的Gizmo(即可视化操作辅助工具),如图1-2所示。此时可以通过拖动鼠标调整Gizmo的方式来调整游戏对象的位置,也可以在监视面板中直接修改Transform组件中的对应字段来调整游戏对象的位置(快捷键为W)。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_27_1.jpg?sign=1739158504-Yf90i9ZQZQoKKr2CERc3lrSxvkHpzw1s-0-c7dbea272bcb22f78a33e574d8440fe8)
图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=1739158504-ktYywsXYVpCzi28bNoar8ThEFk78JcMw-0-9906a96bc298b06762db29d066a3e835)
图1-22 调整游戏对象的角度
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_28_1.jpg?sign=1739158504-CJyLITNjIy8ijLfbm59ynmhSt3WtYohx-0-a43947d3e3371c44c5e2d5be866c5f63)
图1-23 调整游戏对象的大小
在场景视图窗口的正上方是场景视图控制条,如图1-24所示。在场景视图控制条中可以查看和设置场景中的各种选项,以及决定灯光和音频是否启用。需要注意的是,场景视图控制条上的修改仅仅影响开发中的场景视图,而不会对最终发布的游戏造成影响。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_28_2.jpg?sign=1739158504-se4ZLupfpTnCcsaRKrAuJaIoWU0Mrs23-0-0437a2ad4a38c1fcad57bf370ecd7e0d)
图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=1739158504-w9KDPBfBzHr3QCudkYZdzxshYUiYaw21-0-c88bbbfb095e782956cb5c4482aab21a)
图1-25 绘图模式下拉菜单
表1-1 绘图模式种类
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_1.jpg?sign=1739158504-zZV8I99wK4t9i1p5EGjowpJrnwLBZd2v-0-24dc63f751172f82937b585e403f0dc8)
选择不同的绘图模式,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=1739158504-QkYBB8tUZIp4gb3WLaD4izIM0CbNJCRm-0-795bba4eb8b4995d8a53e69f76a83c36)
图1-26 Textured模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_3.jpg?sign=1739158504-fguEikHKV8kLlJWJZatdlIf1v8hTpwDk-0-f1925e7528ef576d4ae206a28d270704)
图1-27 Wireframe模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_4.jpg?sign=1739158504-VLoyVzi1vapoDUOX49j1e5roG2k5DJsL-0-cace36dd3296d4001a156b8a740023bd)
图1-28 Textured Wire模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_5.jpg?sign=1739158504-KEGYPeG6tXC3zPRXGDyFcLCdEbxASZYL-0-1f6166165aba79951dea11b7755c60d5)
图1-29 Render Paths模式场景视图绘制效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_29_6.jpg?sign=1739158504-v70BjAcF5EZflAMZyOzctArXBk0AvYH3-0-fef1e67a76032d0d78cd6a5c4d39b97c)
图1-30 Lightmap Resolution模式场景视图绘制效果
1.2.7 渲染模式
单击“RGB”按钮,弹出渲染模式下拉菜单,如图1-31所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_30_1.jpg?sign=1739158504-OwHKsV1XbPIkQSflwBp4gYn8poRAD1PU-0-353cb183735a373ce3c2dc26e2ea8e5f)
图1-31 渲染模式下拉菜单
通过选择不同种类的渲染模式,场景视图将通过不同的模式渲染场景。Unity 3D游戏引擎提供了4种不同的渲染模式。
表1-2 渲染模式种类
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_30_2.jpg?sign=1739158504-cebrBuhGnA4lSIpcWhnPc3TOVH1lK4jA-0-8a98a84a235c905332c848ba8e7ee181)
选择不同的渲染模式时,场景视图就会显示相应的渲染效果。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=1739158504-S6SmG26nlZ5KTAiIALC2Mz8FPPqBEMUa-0-74178292426267245e347af960d10239)
图1-32 RGB模式场景视图渲染效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_2.jpg?sign=1739158504-7H712Z0DIWErA1L5PYgjVGZlytwLAZA4-0-375769b8f46ef9f00b0485294cb1402e)
1-33 Alpha模式场景视图渲染效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_3.jpg?sign=1739158504-ttVPgNOSA9u0J19AGilDjN5WhnvqhFl4-0-8c5f0173dc5c33a1ffca615f8dc30ec3)
图1-34 Overdraw模式场景视图渲染效果
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_4.jpg?sign=1739158504-NoIBB0LtjSh5pgTOBCnGn1dBRPz7m178-0-b34aa10a8bdd7433d76de74f0272d488)
图1-35 Mipmaps模式场景视图渲染效果
1.2.8 场景视图控制
场景视图控制开关,即 2D/3D视角切换开关、场景视图照明切换开关、音频试听模式切换开关,如图1-36所示。
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_31_5.jpg?sign=1739158504-N1SCva3dmcHzxLqZK0Z6MKedbIwqxqWh-0-5a33639437a1459720cdabaffb654102)
图1-36 场景视图控制开关
表1-3 场景视图控制开关的作用
![](https://epubservercos.yuewen.com/E38954/25638808101563306/epubprivate/OEBPS/Images/29718_32_1.jpg?sign=1739158504-0QqKwIzzqq8It9pVlQjD8EC05a8M1Pt8-0-a0cf5f7b04ecd13658d2624081f69951)
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=1739158504-EtpoqY5BANJaIz9lbjFMIKBVE2Qd47od-0-965170e173fa52976c0a6ce150ccb1cc)
图1-37 Effects菜单