Unity 매뉴얼: 스크립팅 API
Unity의 스크립팅 API는 2D 게임 개발에 유용한 도구들로, 특히 타일맵을 생성하고 관리하는 데 매우 유용합니다. 다음은 주요 클래스와 메서드에 대한 설명입니다.
GridBrushEditorBase 클래스
GridBrushEditorBase 클래스는 새로운 브러시 에디터를 만들 때 기본 클래스 역할을 하며, 이로부터 다른 모든 브러시 에디터가 확장됩니다. 이 클래스는 주로 팔레트 창에서 인스펙터를 그리거나 씬 뷰에서 기즈모를 그릴 때 사용됩니다.
주요 메서드
메서드 | 설명 |
---|---|
public virtual GameObject[] validTargets |
브러시로 색칠할 대상이 되는 게임 오브젝트의 목록을 반환합니다. 이 목록은 팔레트 창의 드롭다운에 표시됩니다. 이 메서드를 오버라이드하여 원하는 타겟 목록을 만들 수 있습니다. |
public virtual void OnPaintInspectorGUI() |
브러시 옵션을 편집할 수 있는 인스펙터를 표시합니다. 씬 뷰에서 브러시 기능을 업데이트할 때 사용할 수 있습니다. |
public virtual void OnSelectionInspectorGUI() |
타겟 그리드에서 셀이 선택되었을 때 사용되는 인스펙터를 표시합니다. 선택된 셀에 대한 커스텀 인스펙터 뷰를 표시하기 위해 이 메서드를 오버라이드할 수 있습니다. |
public virtual void OnPaintSceneGUI(GridLayout grid, GameObject brushTarget, BoundsInt position, GridBrushBase.Tool tool, bool executing) |
씬 뷰에 추가 기즈모를 그릴 때 사용되는 메서드입니다. 현재 선택된 도구를 기준으로 브러시의 기능을 실행할 수 있습니다. |
활용 예제
1. 기본 브러시 제작
아래는 기본 브러시를 만드는 간단한 예제입니다.
using UnityEngine;
using UnityEditor;
public class MyCustomBrush : GridBrushEditorBase
{
public override GameObject[] validTargets
{
get { return new GameObject[] { /* 대상 게임 오브젝트들 */ }; }
}
public override void OnPaintInspectorGUI()
{
// 여기에서 인스펙터 GUI를 정의합니다.
}
public override void OnSelectionInspectorGUI()
{
// 선택된 셀에 대한 커스텀 인스펙터 뷰를 구현합니다.
}
public override void OnPaintSceneGUI(GridLayout grid, GameObject brushTarget, BoundsInt position, GridBrushBase.Tool tool, bool executing)
{
// 기즈모와 브러시 기능을 구현합니다.
}
}
2. 특정 타겟 지정
특정 게임 오브젝트만 색칠할 수 있도록 필터링 제어를 추가할 수 있습니다.
public override GameObject[] validTargets
{
get { return FindObjectsOfType<MySpecificType>().Select(obj => obj.gameObject).ToArray(); }
}
3. 사용자 입력 받아들이기
인스펙터에서 사용자의 입력을 받아들이고, 이를 바탕으로 색칠 도구의 색이나 스타일을 변경할 수 있습니다.
private Color selectedColor = Color.white;
public override void OnPaintInspectorGUI()
{
selectedColor = EditorGUILayout.ColorField("선택된 색상", selectedColor);
}
결론
타일맵 시스템과 GridBrushEditorBase 클래스를 활용하면 사용자 맞춤형 타일 맵 브러시를 쉽게 만들 수 있습니다. Unity의 API를 통해 게임 개발의 가능성을 한층 더 넓혀보세요.