Version: 2021.3
스크립트 가능한 타일 예제
GridBrushBase

스크립트 가능한 브러시

스크립트 가능한 브러시 생성

GridBrushBase로부터 값을 상속받는 새 클래스(또는 GridBrush와 같이 GridBrushBase의 유용한 서브 클래스)를 생성할 수 있습니다. 새 Brush 클래스에서 필수적인 메서드를 오버라이드할 수 있습니다. 일반적으로 다음과 같은 메서드를 오버라이드할 수 있습니다.

  • Paint를 사용하여 브러시로 타겟 그리드에 항목을 추가할 수 있습니다.
  • Erase를 사용하여 브러시로 타겟 그리드에서 항목을 제거할 수 있습니다.
  • FloodFill을 사용하여 브러시로 타겟 그리드에서 항목을 채울 수 있습니다.
  • Rotate를 사용하여 브러시에 설정된 항목을 회전할 수 있습니다.
  • Flip을 사용하여 브러시에 설정된 항목을 뒤집을 수 있습니다.

ScriptableObject.CreateInstance<(Your Brush Class>()를 사용하여 새 클래스의 인스턴스를 생성할 수 있습니다. 새 인스턴스를 에디터에서 에셋으로 전환하면 AssetDatabase.CreateAsset()을 호출하여 인스턴스를 반복적으로 사용할 수 있습니다.

브러시의 커스텀 에디터도 만들 수 있습니다. 이 에디터는 스크립트 가능한 오브젝트의 커스텀 에디터와 동일한 방법으로 사용할 수 있습니다. 커스텀 에디터를 생성할 때 오버라이드할 수 있는 주요 메서드는 다음과 같습니다.

  • OnPaintInspectorGUI를 오버라이드하여 브러시가 선택되었을 때 팔레트에 인스펙터 창을 표시할 수 있고 이를 통해 색칠과 관련한 추가 동작을 제공할 수 있습니다.
  • OnPaintSceneGUI를 오버라이드하여 SceneView에서 색칠할 때 추가 동작을 제공할 수 있습니다.
  • validTargets를 오버라이드하여 브러시가 상호작용할 수 있는 대상으로 구성된 커스텀 리스트를 만들 수 있습니다. 리스트에 포함된 대상은 Palette 창의 드롭다운 리스트에 표시됩니다.

스크립트 가능한 브러시를 생성하면 Palette 창의 Brushes 드롭다운 메뉴에 표시됩니다. 스크립트 가능한 브러시 스크립트의 인스턴스는 기본적으로 인스턴스화되고 프로젝트의 Library 폴더에 저장됩니다. 브러시 프로퍼티에 적용한 수정 사항은 해당 인스턴스에 저장됩니다. 프로퍼티가 조금씩 다르게 설정된 브러시의 복사본이 필요하다면 프로젝트에서 브러시를 에셋으로 인스턴스화할 수 있습니다. 브러시 에셋은 Brush 드롭다운 메뉴에서 별도로 표시됩니다.

CustomGridBrush 속성을 Scriptable Brush 클래스에 추가할 수 있습니다. 이렇게 하면 팔레트 창에서 브러시의 동작을 설정할 수 있습니다. CustomGridBrush 속성은 다음과 같은 프로퍼티를 포함하고 있습니다.

  • HideAssetInstances - true로 설정하면 생성된 브러시 에셋의 모든 복사본을 Palette 창에서 숨깁니다. Tile Palette 창의 Brush 드롭다운 메뉴에 기본 인스턴스만 표시하고 싶을 때 유용합니다.
  • HideDefaultInstances - true로 설정하면 브러시의 기본 인스턴스를 Palette 창에서 숨깁니다. Tile Palette 창의 Brush 드롭다운 메뉴에 생성된 에셋만 표시하고 싶을 때 유용합니다.
  • DefaultBrush - true로 설정하면 브러시의 기본 인스턴스가 프로젝트의 기본 브러시로 설정됩니다. 이렇게 하면 프로젝트가 열릴 때마다 이 브러시가 기본적으로 선택되는 브러시가 됩니다. 참고: 스크립트 가능한 브러시 중 하나만 기본 브러시로 설정하십시오. 기본 브러시를 두 개 이상 설정하면 스크립트 가능한 브러시가 잘못 동작할 수 있습니다.
  • DefaultName - 이름을 설정하면 Brush 드롭다운 메뉴에서 Brush 클래스의 이름이 아닌 설정한 이름이 Brush의 이름으로 사용됩니다.

스크립트 가능한 Brush 클래스가 특정 툴만 사용하도록 설정하려면 호환되는 TilemapEditorTools 타입의 리스트와 함께 BrushTools 속성을 클래스에 추가할 수 있습니다. 이렇게 하면 스크립트 가능한 브러시가 타일 팔레트 툴바의 해당 툴과만 활성화됩니다.

참고: 새 브러시 에셋을 저장하려면 반드시 프로젝트를 저장해야 합니다!

스크립트 가능한 타일 예제
GridBrushBase