[Unity] 유니티 타일팔레트 커스텀 브러시(Unity Tile Palette Custom Brush) - Random Y Offset 적용

0시0분·2023년 6월 7일
0

Unity

목록 보기
1/18

GameObject Brush

2D TileMap Extras 패키지에 포함

❗ GameObject Brush의 Cell Offset 값을 변경하는 기능을 따로 빼서 적용시킬수 있는 브러시를 생성하고자 했음

👉 깔린 타일들의 높낮이를 랜덤으로 적용하고자 함

RandomYOffsetBrush (커스텀 브러시)

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);
    }
  
 	...
}

적용 모습

👉 GameObject Brush 사용 후 RandomYOffset Brush 사용 👉 Rule Tile 적용 브러시 사용 후 RandomYOffset Brush 사용

minOffset = -2, maxOffset = 2 를 적용했다.
지우기까지 깔끔하게 적용된다

0개의 댓글