아래 이미지처럼 Inspector 에 요소를 추가하는 버튼과, 해당 요소 우측에 삭제하는 버튼을 커스텀하게 만들어 넣는 방법.
OnInspectorGUI() 함수를 override 해서 아래 코드처럼 작성. base.OnInspectorGUI() 로 기본 요소들을 그리고 추가 요소들 작성.
#if UNITY_EDITOR
[CustomEditor(typeof(TrackSegment))]
class TrackSegmentEditor : Editor
{
protected TrackSegment m_Segment;
public void OnEnable()
{
m_Segment = target as TrackSegment;
}
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("Add obstacles"))
{
ArrayUtility.Add(ref m_Segment.obstaclePositions, 0.0f);
}
if (m_Segment.obstaclePositions != null)
{
int toremove = -1;
for (int i = 0; i < m_Segment.obstaclePositions.Length; ++i)
{
GUILayout.BeginHorizontal();
m_Segment.obstaclePositions[i] = EditorGUILayout.Slider(m_Segment.obstaclePositions[i], 0.0f, 1.0f);
if (GUILayout.Button("-", GUILayout.MaxWidth(32)))
toremove = i;
GUILayout.EndHorizontal();
}
if (toremove != -1)
ArrayUtility.RemoveAt(ref m_Segment.obstaclePositions, toremove);
}
}
}
#endif
게임 개발에 필수적인 내용을 담는 명서들을 소개합니다.
<유니티 교과서 개정6판>(유니티 최신 버전) 구입 링크
https://link.coupang.com/a/be3P0t
<리얼-타임 렌더링(REAL-TIME RENDERING) 4/e> 구입 링크
https://link.coupang.com/a/8VWas
<이득우의 게임 수학:39가지 예제로 배운다! 메타버스를 구성하는 게임 수학의 모든 것> 구입 링크
https://link.coupang.com/a/9BqLd
유니티 에셋 스토어 링크
https://assetstore.unity.com?aid=1011lvz7h
(링크를 통해 도서/에셋 구입시 일정액의 수수료를 지급받습니다.)
728x90
반응형
'유니티 엔진 (Unity Engine)' 카테고리의 다른 글
[Unity] 화면 캡쳐(Screen Capture) 관련 자료 메모 (0) | 2024.03.07 |
---|---|
[Unity] FOW(Fog of War) 전장의 안개 (0) | 2024.02.06 |
[Unity] VR 기초, 방 탈출 게임 프로젝트 학습 코스 스크랩 (0) | 2024.01.30 |
[Unity] Inspector 에 Addressable AssetReference 배열 노출시키기 (0) | 2024.01.15 |
[Unity] Shader Keyword 셰이더 키워드로 동작 조건부 작성 (0) | 2023.12.20 |
[Unity] Editor SceneView 에서 카메라 조작하기 (fov, position, rotation) (0) | 2023.12.07 |
[Unity] Addressable.LoadAssetAsync() 동기/비동기 처리 (0) | 2023.12.04 |