Unity 2D 基础知识

1. 层级关系

2D世界的物体都在Z轴同一位面(z=0),摄像机在z=-10进行拍摄。物体之间的层级关系通过Y轴的高地来进行计算遮挡关系,从而产生立体感。 设置步骤:

  1. 设置根据Y轴进行排序
    Edit -> Project Setting -> Graphics -> Camera Settings -> Transparent Sort Mode => (x=0,y=1,z=0)
  2. 设置排序为Sprite中心点
    Inspector -> Sprite Render -> Sprite Sort Point -> Pivot 3. 调整Sprite的中心点 Assets -> 选中目标Sprite -> Edit Sprite -> 调整Pivot

2. 刚体、碰撞

UnityEngine模拟了物理世界基本定律:可以通过给GameObject添加刚体(Rigidbody 2D)组件,GameObject便开始收到物理定律的影响(记得把Gravity置为0)。通过添加Collider2D实现碰撞效果。

  1. 防止GameObject沿Z轴旋转
    Inspector -> Rigidbody 2D -> Constraints -> Freeze Rotation -> 勾选z
  2. Collider调整到物体下半部分效果比较真实,即正好是物体的占地面积。
  3. OnTriggerEnter2D 任意一方勾选了Collider的trigger属性,使用此方法。物体之间可以发生碰撞,同时可以互相进入对方空间内部。 OnCollisionEnter2D不勾选trigger时使用,物体之间发生碰撞,无法进入对方空间。

3. 动画

Animation -> 动画(内容) Animator -> GameObject的Component Animation Controller -> 动画状态控制器,可以从一个状态转变为另一个状态 Blend State 挺有趣的(组合多个状态进行叠加)

4. 声音

Audio Source -> 声源 Audio Listener -> 喇叭 Audio Clip -> 声音内容 Clip 放到 Source 中进行播放,Listener负责接收

5. RectTransform

UI对象的中心点(Pivot) -> Unity开始渲染图像时从中心点开始渲染 UI对象的锚点(Anchor) -> 与父对象的相对位置是通过计算与Anchor的相对位置计算的 UI的对象在Screen坐标中,不在World坐标,需要进行转换。

6. Tile

Tile的依存关系: Grid - TileMap1 - Tile1 - Tile2 - TileMap2 - Tile3 这样组织场景会比较方便管理。 Pallete挺好用的,尤其RulePallete、RandomPallete、LinePallete。