找回密码
 立即注册
查看: 276|回复: 0

[简易教程] 1.6 从0开始学习Unity游戏开发--场景编辑工作流

[复制链接]
发表于 2023-3-6 08:49 | 显示全部楼层 |阅读模式
回顾一下上一章我们留下的疑问:为什么会存在Scene和Game两个窗口,分别呈现两个视角下的游戏场景?场景中的相机物体(Main Camera)到底对什么东西起作用。
本章我们将会着重讲解出现这两个东西的缘由,这也是使用现代游戏引擎时必须要理解的问题。
最后我们将会在理解这个机制的基础上,操作相机的视角,让Game窗口下展现出不同的视角画面。
编辑器的概念

在Game窗口下,则是引擎给我们渲染出来的真实游戏画面,之前我们也说了,这个画面的呈现是完全取决于我们用来渲染的时候用的是什么相机,因此我们Demo场景中的Main Camera则是用来直接作用于Game窗口,也就是说跟Scene窗口无关。
但是我们如果是开发一个游戏,免不了会有摆放场景物体,制作场景地形等等操作,有点类似在画图软件上画画一样,而Unity给我们提供的这样一个场所就是Scene窗口,也就是所见即所得的编辑模式,有别于纯粹的写代码来编辑游戏内容,现代游戏引擎非常重要的功能就是提供一个好用的编辑器功能,而对游戏场景进行编辑的地方就是Scene窗口。
这样可以再想象一下,我们之前可以在Scene窗口下可以按住右键后像玩游戏一样以上帝视角游览整个游戏场景,这就是Unity赋予我们的编辑能力。
因此我们如果需要对游戏场景进行编辑,我们除了在Hierarchy窗口下新建资源外,对于资源的摆放位置等等操作,实际上是在Scene窗口中完成的,正因为有这样一个窗口,除了程序员外,策划和美术也能使用编辑器来完成自己想要的内容创作。
所以有别于程序员所有东西都是代码控制的观念,现代游戏引擎考虑的是一整个游戏团队的使用,这个团队中不仅仅有程序员,还有游戏策划,游戏美术。策划可能在里面设计玩法,美术可能会在里面编辑地形,设计场景布局等等。
编辑你的场景

上面说了半天Scene窗口里面可以编辑场景,但是我们如何编辑呢?
前面我们已经了解到按住鼠标右键之后可以游览整个场景,如果不按住鼠标右键,而是点击左键,则可以选中场景内的物体,比如我们如果对创建出来的立方体点击左键,我们是可以选中它的,而选中的效果则是物体有一个高亮的轮廓,并且显示三个坐标轴箭头,Hierarchy窗口中也会在树形结构中呈现这个物体的选中态。


可以看到我们选中方块后,方块上就会有三个箭头,这三个箭头表示了这个3D空间中XYZ三轴的正方向,但是和我们学立体几何的时候常用的使用Z轴作为竖直方向上的坐标轴不同,Unity使用了Y轴,也就是图里面绿色的箭头是Y轴的正方向,而水平面上的两个坐标轴是X和Z。
显示着三个坐标轴的目的并不是好看,而是可以进行操作,点击三种颜色的坐标轴箭头,按住不放移动鼠标,就可以将物体在这个坐标轴的维度上进行移动:


恭喜你已经学会了如何在Scene窗口下进行场景编辑,想象一下你希望用方块做一个房子,就像玩Minecraft一样,你可以在左边Hierarchy窗口不停的新建Cube,然后在Scene窗口里面把它挪动到你想要的位置。
除了通过点击坐标轴进行移动外,你还可以对物体进行旋转,缩放,这个时候你需要使用快捷键,直接按下键盘上的按键即可激活:

  • Q:手型工具,这种模式下选中物体不出现编辑用的工具,但是可以通过鼠标左键按住拖动Scene窗口的视角,但是这个操作得多使用才能用的得心应手,建议和按住鼠标右键时扭转视角来配合使用。
  • W:移动模式:就是我们上面举例用的模式
  • E:旋转模式:选中物体会出现三个围绕物体的圆形,可以按住圆形轨道拖动鼠标来旋转物体
  • R:缩放模式:出现的三个竖线,比较类似移动模式,但是点击每个轴拖动是缩放物体在这个维度上的大小。
直接按键盘上的这个字母就能切换,而当前是什么模式,可以通过看Scene窗口左上角的工具条当前高亮是哪个来确认,当然也可以鼠标点选上面的模式:


好了,现在你已经学会了常用的着四种编辑模式,当然还有更多的模式,作为新手教程就先不讲了。
这个时候你可能会觉得,这些编辑操作虽然方便,但是完全看不到具体我操作的量级,比如移动了一个物体,说到底这个物体到底是被我从哪个位置移动到哪个位置,既然是3D空间,那起码有个3D空间下的坐标吧?
没错,这就是接下来我们需要讲到的Inspector窗口的作用。
Inspector窗口

当我们选中Cube的时候,除了Scene窗口有反应,其实也能看到Inspector窗口显示了密密麻麻的东西:


可以看到这个其实就是显示了Cube到底内容是个什么东西,到了程序员最能理解的环节来了。
在Unity中,组成一个物体的各个功能使用的是组合的设计方式,而非类的继承,所以可以在Inspector面板上,我们可以看到一个个可以展开和收起的东西,从上到下依次是:

  • Transform
  • Cube(Mesh Filter)
  • Mesh Renderer
  • 等等
这里面每个部分都可以看作是给Cube这个物体提供的功能组件,想象成类的各个成员变量。
那么刚刚我们说的物体3D坐标的信息,就存储在Transform这个组件里面,可以很清晰的看到它的Position,Rotation,Scale。
同时,你可以直接在输入框内修改它的值!而且这个值修改也是实时生效在Scene窗口中的。
场景编辑工作流的总结

那么到了这里,你大概对整个Unity进行场景编辑的工作流有了一个基本的概念:

  • 创建一个场景资源(如果有需要的话)
  • 打开这个场景资源(从Project窗口打开)
  • 在Hierarchy窗口里面新建属于这个场景的物体,可以是一个Cube,也可以是其他任何东西
  • 在Scene窗口中可以进行类似玩游戏一样的编辑操作,这极大的方便了美术和策划参与到游戏开发中
  • 选中任何物体时,可以在Inspector面板上看到我们程序能理解的关于这个物体包含的功能组件都是哪些,以及每个组件可以修改的数据都可以直接修改。
Game

我们了解编辑器其实就是让我们能更快的生产游戏内容,但是编辑完成后,游戏效果怎么查看呢?前面我们也说了,游戏画面取决于相机的视角,而我们场景中仅仅自带了唯一一个相机物体,这里有很多关于游戏渲染方面的知识需要提前了解,但是我们先按下不表,先就当作目前场景中生效的相机就是这个唯一的相机物体。
那么复习一下前面学的编辑操作,我们选中这个相机物体(Main Camera),可以在Scene窗口中看到这个相机,如果并没有看到诸如三个箭头之类的辅助工具,说明相机物体在你的Scene窗口视线外,可以双击一下Main Camera这个物体,快速的让物体居中在视线中。


可以看到右下角出现了一个带有Main Camera名字的小窗口,这个就是相机类型的物体在Scene窗口的额外功能之一,可以直接预览这个相机实际看到的画面,如果你切换到Game窗口的话,可以发现这个小画面和Game窗口显示的一模一样。至于相机的朝向,可以看Scene窗口下这个相机图标的朝向,如果不是很清晰的话,可以看蓝色箭头,也就是说相机的朝向永远指向自己的Z轴正方向。
现在我们如果移动这个相机物体,可以很明显的发现小窗口和Game窗口的画面都发生了变化,现在是不是能比较清楚Game窗口和Scene窗口显示内容的差别了呢?
运行游戏

前面说了那么多,其实我们都是在编辑器下离线预览的,不论是Scene还是Game窗口的内容。之所以是离线,是因为我们目前看到的东西都是只运行了特定的一部分代码,并不是完全真实的游戏运行结果,如果我们希望游戏真的跑起来,那么我们可以点击引擎中间顶部的播放按钮:


点击后,Unity则会真实的运行我们这个场景的内容,并且会自动切换到Game窗口:


再点击一次播放按钮,我们就能直接强行结束游戏。
下一章

本章我们从目的出发,讲解了Unity的几个窗口是怎么为编辑场景内容做贡献的,并且最终我们成功的操作了相机的位置,从而能够随便改变最终呈现在Game窗口的画面,并且最终也真正的运行了游戏。
虽然我们遗留了很多问题,比如最后一节我们提到了游戏运行和不运行是有区别的,并且我们也仍然无法了解为啥这个Cube就能画出来。
但是这些问题解释起来还需要更多的前置知识,因此我们会先继续讲解基础用法,然后再针对性的解答。
既然我们已经可以操作场景,调整视角,那么下一章会详细讲解一个Cube的组成,以及代码上是如何体现的,学习完后我们能够通过代码来创建世界的物体。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-29 02:42 , Processed in 0.091277 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表