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
속성을 클래스에 추가할 수 있습니다. 이렇게 하면 스크립트 가능한 브러시가 타일 팔레트 툴바의 해당 툴과만 활성화됩니다.
참고: 새 브러시 에셋을 저장하려면 반드시 프로젝트를 저장해야 합니다!
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.