68 lines
2.1 KiB
C#
68 lines
2.1 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEditor;
|
|
|
|
[CustomEditor(typeof(PlayerController))]
|
|
public class PlayerControllerEditor : Editor
|
|
{
|
|
public override void OnInspectorGUI()
|
|
{
|
|
// 기본 인스펙터를 그리기
|
|
base.OnInspectorGUI();
|
|
|
|
// 타겟 컴포넌트 참조 가져오기
|
|
PlayerController playerController = (PlayerController)target;
|
|
|
|
// 여백 추가
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.LabelField("상태 디버그 정보", EditorStyles.boldLabel);
|
|
|
|
|
|
EditorGUILayout.BeginVertical(EditorStyles.helpBox);
|
|
EditorGUILayout.LabelField("현재 상태", playerController.CurrentState.ToString(), EditorStyles.boldLabel);
|
|
EditorGUILayout.LabelField("현재 행동", playerController.CurrentAction != null ? playerController.CurrentAction.ToString() : "-", EditorStyles.boldLabel);
|
|
EditorGUILayout.EndVertical();
|
|
|
|
|
|
// 지면 접촉 상태
|
|
GUI.backgroundColor = Color.white;
|
|
EditorGUILayout.Space();
|
|
EditorGUILayout.LabelField("캐릭터 디버그 정보", EditorStyles.boldLabel);
|
|
// GUI.enabled = false;
|
|
// EditorGUILayout.Toggle("지면 접촉", playerController.IsGrounded);
|
|
// GUI.enabled = true;
|
|
|
|
// 강제로 상태 변경 버튼
|
|
EditorGUILayout.BeginHorizontal();
|
|
|
|
if (GUILayout.Button("BattleMode"))
|
|
playerController.SwitchBattleMode();
|
|
if (GUILayout.Button("Win"))
|
|
playerController.SetState(PlayerState.Win);
|
|
if (GUILayout.Button("Hit"))
|
|
playerController.TakeDamage();
|
|
if (GUILayout.Button("Dead"))
|
|
playerController.SetState(PlayerState.Dead);
|
|
|
|
EditorGUILayout.EndHorizontal();
|
|
}
|
|
|
|
private void OnEnable()
|
|
{
|
|
EditorApplication.update += OnEditorUpdate;
|
|
}
|
|
|
|
private void OnDisable()
|
|
{
|
|
EditorApplication.update -= OnEditorUpdate;
|
|
}
|
|
|
|
private void OnEditorUpdate()
|
|
{
|
|
if (target != null)
|
|
Repaint();
|
|
}
|
|
}
|