2D TileMap Extras 패키지에 포함
❗ GameObject Brush의 Cell Offset 값을 변경하는 기능을 따로 빼서 적용시킬수 있는 브러시를 생성하고자 했음
👉 깔린 타일들의 높낮이를 랜덤으로 적용하고자 함
GameObject Brush를 상속받음
👉 3D Object의 position 값을 수정할 것이기 때문에 GameObject의 접근이 필요했음
public class RandomYOffsetBrush : GameObjectBrush
{
...
private void PaintCell(GridLayout grid, Vector3Int position, Transform parent, BrushCell cell, Vector3Int brushPosition)
{
var existingGO = GetObjectInCell(grid, parent, position, m_Anchor);
if (existingGO == null) return;
SetGameObject(brushPosition, existingGO);
float randomOffset = new System.Random().Next(minYOffset, maxYOffset) * 0.1f;
SetSceneCell(grid, parent, position, cell.gameObject, new Vector3(0, randomOffset, 0), m_Anchor);
ClearSceneCell(grid, parent, position);
}
...
}
minOffset = -2, maxOffset = 2 를 적용했다.
지우기까지 깔끔하게 적용된다