Degulleo3D/Assets/JAY/Scripts/PlayerControllerEditor.cs

82 lines
2.7 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();
// EditorGUILayout.LabelField("걷기/뛰기 상태 전환", EditorStyles.boldLabel);
// EditorGUILayout.BeginHorizontal();
// if (GUILayout.Button("Walk"))
// {
// var moveState = playerController.GetStateInstance<PlayerStateMove>();
// moveState?.HandleMoveState(true); // 걷기 모드
// }
//
// if (GUILayout.Button("Run"))
// {
// var moveState = playerController.GetStateInstance<PlayerStateMove>();
// moveState?.HandleMoveState(false); // 달리기 모드
// }
// EditorGUILayout.EndHorizontal();
// 지면 접촉 상태
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();
}
}