GridBrushBase
로부터 값을 상속받는 새 클래스(또는 GridBrush
와 같이 GridBrushBase
의 유용한 하위 클래스)를 생성할 수 있습니다. 새 Brush
클래스에서 필수적인 메서드를 오버라이드할 수 있습니다. 일반적으로 다음과 같은 메서드를 오버라이드할 수 있습니다.
Paint
를 사용하여 브러시로 타겟 그리드에 항목을 추가할 수 있습니다.Erase
를 사용하여 브러시로 타겟 그리드에서 항목을 제거할 수 있습니다.FloodFill
를 사용하여 브러시로 타겟 그리드에서 항목을 채울 수 있습니다.Rotate
를 사용하여 브러시에 설정된 항목을 회전할 수 있습니다.Flip
을 사용하여 브러시에 설정된 항목을 뒤집을 수 있습니다.ScriptableObject.CreateInstance<(Your Brush Class>()
를 사용하여 새 클래스의 인스턴스를 생성할 수 있습니다. 새 인스턴스를 에디터에서 에셋으로 전환하면 AssetDatabase.CreateAsset()
을 호출하여 인스턴스를 반복적으로 사용할 수 있습니다.
브러시의 커스텀 에디터도 만들 수 있습니다. 이 에디터는 스크립트 가능한 오브젝트의 커스텀 에디터와 동일한 방법으로 사용할 수 있습니다. 커스텀 에디터를 생성할 때 오버라이드할 수 있는 주요 메서드는 다음과 같습니다.
OnPaintInspectorGUI
를 오버라이드하여 브러시가 선택되었을 때 팔레트에 인스펙터를 표시할 수 있고 이를 통해 색칠과 관련한 추가 동작을 제공할 수 있습니다.OnPaintSceneGUI
를 오버라이드하여 SceneView
에서 색칠할 때 추가 동작을 제공할 수 있습니다.validTargets
를 오버라이드하여 브러시가 상호작용할 수 있는 대상으로 구성된 커스텀 목록을 만들 수 있습니다. 목록에 포함된 대상은 팔레트 창의 드롭다운에 표시됩니다.스크립트 가능한 브러시를 생성하면 팔레트 창의 브러시 드롭다운 에 표시됩니다. 스크립트 가능한 브러시 스크립트의 인스턴스는 기본적으로 인스턴스화되고 프로젝트의 Library 폴더에 저장됩니다. 브러시 프로퍼티에 적용한 수정 사항은 해당 인스턴스에 저장됩니다. 프로퍼티가 조금씩 다르게 설정된 브러시의 복사본이 필요하다면 프로젝트에서 브러시를 에셋으로 인스턴스화할 수 있습니다. 브러시 에셋은 브러시 드롭다운에서 별도로 표시됩니다.
CustomGridBrush
속성을 Scriptable Brush 클래스에 추가할 수 있습니다. 이렇게 하면 팔레트 창에서 브러시의 동작을 설정할 수 있습니다. CustomGridBrush
속성은 다음과 같은 프로퍼티를 포함하고 있습니다.
HideAssetInstances
- True로 설정하면 생성된 브러시 에셋의 모든 복사본을 팔레트 창에서 숨깁니다. 팔레트 창의 브러시 드롭다운에 기본 인스턴스만 표시하고 싶을 때 사용하십시오.HideDefaultInstances
- True로 설정하면 기본 브러시 인스턴스를 팔레트 창에서 숨깁니다. 팔레트 창의 브러시 드롭다운에 생성된 에셋만 표시하고 싶을 때 사용하십시오.DefaultBrush
- True로 설정하면 브러시의 기본 인스턴스가 프로젝트의 기본 브러시로 설정됩니다. 이렇게 하면 프로젝트가 열릴 때마다 이 브러시가 기본적으로 선택되는 브러시가 됩니다. 스크립트 가능한 브러시 중 하나만 기본 브러시로 설정하십시오!DefaultName
- 설정하면 브러시 드롭다운에서 브러시 클래스 이름 대신 이 이름이 브러시 이름으로 사용됩니다.새 브러시 에셋을 저장하려면 반드시 프로젝트를 저장해야 합니다!
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.