6596人加入学习
(28人评价)
Unity新功能指南 - 使用TileMap快速构造2D关卡(Unity2017.3)

制作于2018.1.7

价格 免费

tilemap 里anchor只会调整图,不会移动碰撞器

 

摄像机跟随脚本

import package --utility中

FollowTarget.cs

SmoothFollow.cs

后者有参数可以实现平滑跟随

 

[展开全文]
1.Tilemap中的AnimationFrameRate为设置动画速率,需要使用额外的插件。
2.可以设置瀑布为半透明(通过修改画布或资源文件的颜色)。
3.瓦片文件的Collider Type中sprite(自动识别添加合适的碰撞器,如对树的形状进行自动识别)和grid(碰撞器为网格)。
4.也可能为树添加混合碰撞器组件来进行优化。
5.地面瓦片和地面上的瓦片有缝隙,可以通过调整画布的Tilemap的tile Anchor的y轴属性来解决。(碰撞器不会变化,通过Composite Collider 2D的offset可以修改碰撞器的偏移)
6.右键点击Project面板,导入Utility中的脚本FollowTarget和SmoothFollow。(unity标准资源包自带的相机跟随脚本)
7.设置相机跟随:将followTarget拖动到相机上,目标为主角,偏移为0,0,-10,或将SmoothFollow拖动到相机上,可以设置缓效果。

[展开全文]

1.下载最新或使用老师给出的TileMap扩展包,并导入。

2.导入相机脚本Cinemachine

[展开全文]

1.新建一个RuleTile,Tiles-Adv-GroundRuleTile(RuleTile),然后为其赋值默认的瓦片,设置多 个Tiling Rules。

2.将建好的RuleTile拖到调色板(AdvGroundPalette)中。

3.新建画布Ground。

4.

[展开全文]

1.新建规则瓦片:Tiles-Adv-WaterfallRuleTile。

2.添加两个Tiling Rules,Output改为Animation,Size改为5(动画帧数),并赋值。

3.当有瓦片符合多个Tiling Rlues时,优先响应位置靠上的Tiling Rlues。

4.不同画布中的瓦片可以覆盖

[展开全文]

随机生成花花草草:

1.新建Tiles-Adv-Plant(RuleTile)

2.Output设置为Random(修改Noise可以改变随机的结果)

3.将花草石头放入。

4.新建调色板、画布即可。

5.如果树的素材重新手动切片,一棵树为一个切片,但新建调色板时,需要手动设置瓦片大小,不同的树大小也不一样,所以不推荐手动切片,都切成64*64,不使用随机生成的方法生成。

[展开全文]

管道瓷砖PipelineTile,用RuleTile也可以实现,实现的效果好像和监狱建筑

 

 

 

[展开全文]

#非常重要!TileMap重点知识之一!

RuleTile规则瓦片

可以快速画出平台,省去切换瓦片的麻烦

设定不同位置的瓦片,可以自动画出完整的平台

设定方法是给周围四个方向打上标签,比如上方没有瓦片的就是草地瓦片,上方打上红叉,其他三个方向打上绿色箭头。以此类推。拐角处的在斜方向打红叉即可。

 

 

[展开全文]

动画RuleTile

在Output里选择Animation就可以创建动画瓦片

规则是从上到下的优先级,所以只有一格时可能不能正确识别,注意修正

[展开全文]

RandomTile随机瓦片

Output里选择Random,可以随机画出瓦片

可以用Noise更改随机的瓦片出现频率

[展开全文]

创建palette时可以用cellsize控制瓦片占用格子数

PipelineTile管道瓦片

可以看成自动旋转的地形瓦片,不常用

[展开全文]

CoordinateBrush

在笔刷下显示坐标,可以指定z轴进行绘制,在不同层绘制

GameObjectBrush

为PrefabBrush做基础,未知用途

LineBrush

绘制线条的笔刷,没有什么特别的

TintBrush/TintBrush(Smooth)

颜色笔刷,用来给瓦片涂色,需要Material

PrefabBrush

用来刷Prefab的,比如刷宝石

RandomBrush

随机刷东西

[展开全文]

Cinemachine可编程摄像机

中间的矩形是DeadZone,人物在其中移动,摄像机不会动

第二层的矩形是SoftZone,人物在其中移动,摄像机会缓慢跟随

第三层的矩形,人物在其中移动,摄像机会瞬间跟随

Cinemachine Confiner

限制器,可以用polygon collider限制摄像机移动范围,实现跌落死时摄像机不跟随

[展开全文]

Tilemap tilemap;

tilemap.BoxFill() 用tile填充一个矩形,不可覆盖,不可批量清除

tilemap.SetTile()设定单个tile,可覆盖,设为null可以清除tile

[展开全文]

SwapTile 查找和替换Tile

GetTilesBlock 在一个block里使用GetTile的功能,批量获取tile

SetTilesBlock 在一个block里使用SetTile的功能,批量设置tile

FloodFill 油漆桶

[展开全文]

3D中画TileMap只用注意轴的切换即可

[展开全文]

TileMap是只有在2017.2以上才有的功能
TileMap是unity快速构建2D地图的功能

1.背景平铺功能,用1宽乘以xxx长的图片平铺一张背景,需要把图片的MeshType调成FullRect比较好,不用Tight。
2.在2D地图中,我们希望每一块地图都是一个unity单位,也就是每一块地图的单位都是1个格子,所以需要从图片的PixelsPerUnit
   栏中将数值调成整除数值,比如宽是256的图片有上下两格,那么该数值就要调成128。
★★★3.用到了图片的Draw功能,没搞懂,好像就是平铺模式
4.在Window工具中选择2D,里面的TilePalette,点击CreateNewPalette就可以生成调色板了。
   Grid是可以选择四边形或者六边形,CellSize可以选择自动大小或者自定义大小。
5.SortingLayer排序层,在排序层中可以除默认层外自定义排序层,按照从上到下的顺序谁在上面谁先画。
6.在TileMap的地图上挂组件会应用到整个map上的所有画出来的物体。
    为了降低性能消耗,我们可以添加CompositeCollider2D,当挂上整个组件时会为对象添加一个刚体和一个可以联合碰撞器的选项,
        在TilemapCollider2D面上上勾选UsedByComposite即可将块状碰撞器联合在一起。 
7.在Tiles的每个物块的源文件上可以修改这个物块的ColliderType,如果该物块是Sprite的ColliderType那么当你给这个这些对象挂碰撞器的时候,
   unity会自动帮你计算该物块的有用像素,也就是大致的帮你勾勒出物体的轮廓,如果是Grid模式,那么unity就直接给整个正方形网格添加碰撞器。
8.调节TileMap里面的TileAnchor可以只调节map的位置而不调节碰撞器的位置。 
9.移动场景中的物体时,按住Ctrl可以一格一格地移动物体。
10.可以创建Prefab笔刷。刷Prefab。

[展开全文]

http://github.com/Unity-Technologies/2d-extras

[展开全文]

素材的裁剪,背景图片平铺MeshType-- Full Rect,

[展开全文]