Unity学习笔记-2

本文最后更新于:2023年10月14日 下午

编辑器的一些设置

Scene窗口下的Pivot和Center

Center(中心):据网上说是由Unity计算出来的模型的中心。
Pivot(轴心/锚点):建模本身的中心,也就是这个资源先前(或者说建模时?)就设置好的中心。

Scene View设置

Edit -> Preferences -> Scene View,看到其中的Create Objects at Origin选项,建议启用。鼠标悬停在此选项上可以看到详细说明。
启用后,当我们创建新的objects时,会将objects生成于(0, 0, 0)坐标上(也就是TransformPosition属性上的xyz都为0)。

Main Camera设置

我们实际在游戏中看到的画面,就是Main Camera能够看到的画面。如果画面大小不是你所期待的大小,可以在Hierarchy窗口中点击Main Camera,然后在Inspector窗口中修改其Projection属性下的Size的值。

素材导入和整理

素材导入

美术素材记得分好类,分好文件夹,这样结构层次分明好看容易找。然后可以新建一个整体的名字叫Art Assets的文件夹,把所有分好类后的美术资源放进这个文件夹中,然后将Art Assets文件夹拖入Project窗口中,放在Assets目录下,就能完成美术素材的导入了。

素材处理

像素游戏的美术素材的处理示范

比如我们导入的素材中,有一个是我们的游戏背景,名为Background,其文件格式是.png,直接在Project窗口里边点击它,这个时候Inspector视窗中就会出现素材的各项属性。
需要关注的属性有:Pixels Per UnitFilter ModeCompression

  • Pixels Per Unit,即每单元像素。我们在Scene窗口下看到的每一个小方格就是一个单元,而这个选项就是每个格子可以显示多少像素单位。我们的美术素材在绘制时其实就是按照一定比例绘制的,比如16*16,而这个数字其实就是我们需要在这里填上去的数字了。
  • Filter Mode,即过滤模式。当我们将小图片放大的时候,它可以用一些临近点去采取像素补充。在像素游戏中一般选择Point(no filter),也就是没有过滤器。
  • Compression,即压缩。我们不需要对图片进行压缩,所以直接使用None就好。

图集切割

我们导入的人物素材是一个图集,也就是一张图里包含了人物的各种状态(动作),要使用这些素材,就需要先对图集进行切割,将他们区分开来。
Project窗口中选择图集,然后在Inspector窗口中找到Sprite Editor并点击,可以看到如下窗口:
左上角的slice选项可以选择切片方法,这里不使用自动切片是因为中心点难以确定,会导致后续动画制作的麻烦。这里可以选择Grid By Cell Count,然后数一下一行有几个人,一列有几个人,然后分别填入CR中就好了。图中的CR分别为8和11。
还有另外一点,在slice选项中还有个Pivot选项,也就是确定切片的轴心,这里可以选择Center,也可以选择Bottom,如果选择Bottom就会以脚底为中心,这样贴近地图的时候方便计算。

场景切割

接下来来处理我们的场景素材。在素材中找到Tiles并打开它的Sprite Editor,不同于人物素材,我们使用Grid By Cell Size进行切割,直接用16*16大小的格子将素材进行切割,效果如图所示:

这里要注意切割的时候Pivot选择Center!否则在绘制场景的时候会发现格子对不上!

场景绘制

场景绘制一般都是使用unity内置的工具,Windows -> 2D -> Tile Palette,打开我们的“瓦片调色盘”。在当前项目初次使用这个工具,我们需要创建新的Palette(调色盘),以及新的Tilemap(瓦片地图),可以看到窗口上也显示出No Valid PaletteNo Valid Target,这时候就需要我们Create New Tile PaletteCreate New Tilemap。根据提示进行创建即可(瓦片地图看下面)。这里教程中保存的路径为:Assets/Tilemap/Palettes
调色盘创建完毕后,直接把切割好的场景素材拖拽到Tile Palette窗口中即可,这个时候unity会问我们需要将切割好的Tiles(瓦片)保存到哪,教程中保存在Assets/Tilemap/Tiles中。
最后一步创建我们的Tilemap,切换到Hierarchy窗口,+ -> 2D Object -> Tilemap,选择Rectangular并创建,然后切换回Tile Palette窗口,就会发现最上方切换成了我们刚创建好的Tilemap对象。
至此,我们就可以从Tile Palette中框选一定的单元,然后在Scene中进行绘制了。

叠层

在进行场景绘制的时候,我们发现人物的图层在场景的图层的下方,场景把人物挡住了;要让人物处于场景的上方,这个时候就需要用到叠层了。

Layer(层)

Hierarchy窗口中,选中一个GameObject(比如选择我们的人物),然后在Inspector窗口中,可以看到它的Renderer组件中有Additional Settings选项,这个选项里面就包含了我们需要用到的Sorting LayerOrder in Layer属性。
前者是这个GameObject所处于的层级,后者则是这个GameObject在其所属层级中的“优先级”,优先级越高(数字越大),则该GameObject在当前层级越优先显示(处于更上方)。
创建图层如下图所示,注意在下图中处于下方的图层会遮挡处于上方的图层:
图层创建
当然,要分多少个图层、怎么分配图层等,这种东西看自己就好,比如在麦扣老师的视频中,创建了 Back 、Middle 和 Front 三个图层,然后创建了 7 张Tilemap,其中 Platform 处于 Middle 图层,三张 Back 瓦片地图就处于 Back 图层,但是优先级不同,同样的,三张 Front 瓦片地图处于 Front 图层但优先级不同。
该如何去绘制场景,可以直接看素材给出的例子:
场景参考

  • 其实就是绘画里的图层的概念(

瓦片

我们可以创建一些特殊的瓦片来帮助我们快速地绘制地图,比如有规则瓦片,就可以根据我们为其设定的规则从而自动选择相应的瓦片进行填充绘制。
可以将我们自定义的瓦片也同样地放在Assets/Tilemap/Tiles文件夹中,并根据瓦片的不同类型进行命名,如: Rule Tiles(有规则瓦片) 和 Animated Tile(动态瓦片)。

有规则瓦片

要创建有规则瓦片,右键对应文件夹:Create -> 2D -> Tiles -> Rule Tile
上面也已经说过了,这个规则瓦片能够根据我们设定的规则从而自行选择相应的瓦片进行填充。

动态瓦片

要创建动态瓦片,右键对应文件夹:Create -> 2D -> Tiles -> Animated Tile
如果我们想要一些能够动态变化的瓦片,就应该选择动态瓦片。我们可以为这个瓦片设置动画的张数,这个瓦片就会在运行时在这几张设定的瓦片之间来回切换,达到一个动画的效果。


这里有一只爱丽丝

希望本文章能够帮到您~


Unity学习笔记-2
https://map1e-g.github.io/2023/09/23/unity-learning-2/
作者
MaP1e-G
发布于
2023年9月23日
许可协议