Pulver trash maze sequence
This commit is contained in:
89
Assets/Editor/MazeExitEditor.cs
Normal file
89
Assets/Editor/MazeExitEditor.cs
Normal file
@@ -0,0 +1,89 @@
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
using Minigames.TrashMaze.Objects;
|
||||
|
||||
namespace Editor
|
||||
{
|
||||
/// <summary>
|
||||
/// Custom editor for MazeExit showing teleportation and camera settings
|
||||
/// </summary>
|
||||
[CustomEditor(typeof(MazeExit))]
|
||||
public class MazeExitEditor : UnityEditor.Editor
|
||||
{
|
||||
private SerializedProperty _teleportTarget;
|
||||
private SerializedProperty _targetCameraState;
|
||||
|
||||
// Base class properties
|
||||
private SerializedProperty _isOneTime;
|
||||
private SerializedProperty _cooldown;
|
||||
private SerializedProperty _characterToInteract;
|
||||
|
||||
private void OnEnable()
|
||||
{
|
||||
_teleportTarget = serializedObject.FindProperty("teleportTarget");
|
||||
_targetCameraState = serializedObject.FindProperty("targetCameraState");
|
||||
|
||||
// Base class properties
|
||||
_isOneTime = serializedObject.FindProperty("isOneTime");
|
||||
_cooldown = serializedObject.FindProperty("cooldown");
|
||||
_characterToInteract = serializedObject.FindProperty("characterToInteract");
|
||||
}
|
||||
|
||||
public override void OnInspectorGUI()
|
||||
{
|
||||
serializedObject.Update();
|
||||
|
||||
// Draw script field (read-only)
|
||||
EditorGUI.BeginDisabledGroup(true);
|
||||
EditorGUILayout.ObjectField("Script", MonoScript.FromMonoBehaviour((MonoBehaviour)target), GetType(), false);
|
||||
EditorGUI.EndDisabledGroup();
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
// Interaction Settings (from base class)
|
||||
EditorGUILayout.LabelField("Interaction Settings", EditorStyles.boldLabel);
|
||||
EditorGUILayout.PropertyField(_isOneTime);
|
||||
EditorGUILayout.PropertyField(_cooldown);
|
||||
EditorGUILayout.PropertyField(_characterToInteract);
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
// Maze Exit Settings
|
||||
EditorGUILayout.LabelField("Maze Exit Settings", EditorStyles.boldLabel);
|
||||
|
||||
EditorGUILayout.PropertyField(_teleportTarget);
|
||||
if (_teleportTarget.objectReferenceValue == null)
|
||||
{
|
||||
EditorGUILayout.HelpBox("Assign a Transform where Pulver should be teleported to (maze exit position). Teleportation happens midway through camera blend.", MessageType.Warning);
|
||||
}
|
||||
else
|
||||
{
|
||||
EditorGUILayout.HelpBox("✓ Pulver will be teleported to this position halfway through the camera blend. Tracking target is set immediately.", MessageType.Info);
|
||||
}
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
EditorGUILayout.PropertyField(_targetCameraState);
|
||||
EditorGUILayout.HelpBox("Camera state to blend to. Typically 'PulverGameplay' when exiting maze. Requires TrashMazeCameraController in scene.", MessageType.Info);
|
||||
|
||||
EditorGUILayout.Space();
|
||||
|
||||
// Info box about the behavior
|
||||
EditorGUILayout.HelpBox(
|
||||
"Maze Exit Behavior:\n" +
|
||||
"1. Find Pulver (player-controlled in maze)\n" +
|
||||
"2. Start camera blend to target state\n" +
|
||||
"3. ★ Teleport Pulver midway through blend ★\n" +
|
||||
"4. Set Pulver as tracking target immediately\n" +
|
||||
"5. Wait for blend to complete\n" +
|
||||
"6. Stop Pulver movement (clear cached input)\n" +
|
||||
"\n" +
|
||||
"Note: Does NOT switch controllers - Pulver remains player-controlled!",
|
||||
MessageType.None
|
||||
);
|
||||
|
||||
serializedObject.ApplyModifiedProperties();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user