.
유니티 에디터에서 Inspector 를 이쁘게 정리하기 위해 ReorderableList 적용하기 포스트.
사용해야할 기본 코드
using UnityEditorInternal;
// 클래스 내에서
private ReorderableList list;
private void OnEnable()
{
list = new ReorderableList(serializedObject,
serializedObject.FindProperty("TriggerList"),
true, true, true, true);
// Element 가 그려질 때 Callback
list.drawElementCallback =
(Rect rect, int index, bool isActive, bool isFocused) => {
// 현재 그려질 요소
SerializedProperty element = list.serializedProperty.GetArrayElementAtIndex(index);
rect.y += 2; // 위쪽 패딩
EditorGUI.PropertyField(
new Rect(rect.x, rect.y, 100, EditorGUIUtility.singleLineHeight),
element.FindPropertyRelative("eTriggerType"), GUIContent.none);
EditorGUI.PropertyField(
new Rect(rect.x + 100, rect.y, rect.width - 100 - 30, EditorGUIUtility.singleLineHeight),
element.FindPropertyRelative("ConditoinList"), GUIContent.none);
};
}
public override void OnInspectorGUI()
{
serializedObject.Update();
list.DoLayoutList();
serializedObject.ApplyModifiedProperties();
}
위 코드처럼 구성하면 일단 아래처럼 기본 구성 띄우는 건 성공.
구체적인 커스터마이징은 좀 더 자료를 찾아보니 금방 나오는군요. 아래쪽에 참고 링크들 추가. 장기적으로 편리하게 사용하려면 GUI 도 잘 만들어둬야겠습니다.
https://m.blog.naver.com/hammerimpact/220775710045
728x90
반응형
'유니티 엔진 (Unity Engine)' 카테고리의 다른 글
[Unity] Canvas Order 설정으로 팝업창 구현 (0) | 2021.04.06 |
---|---|
[Unity] 간단한 SoundManager 소스코드 공유 (0) | 2021.03.01 |
[Unity] 유튜브의 Unity 강좌 채널 5개 (0) | 2020.12.01 |
[Unity] Serialize 타입, 값 유지하기 (FormerlySerializedAs) (0) | 2020.10.12 |
[Unity] UGUI, Scroll View 만들기 (0) | 2020.10.11 |
유니티를 이용한 VR 앱 개발, 초보자도 VR게임을 만들 수 있을까? (0) | 2020.10.05 |
[Unity][Asset] DOTween, 트위닝 애니메이션 플러그인 (0) | 2020.10.05 |