- Home /
Question by
davisj16usmc · Aug 30, 2015 at 03:55 PM ·
custom-inspectorfoldout
Custom Inspector Editor Foldout
I am building a custom editor for my player manager, and so far it's doing good. My only problem is when I open one foldout the rest disappear. Can anyone help me please?
[CustomEditor (typeof(PlayerManager))]
public class PlayerManagerEditor : Editor {
bool ShowMonitor = false;
bool ShowStats = false;
bool ShowAnim = false;
bool ShowSounds = false;
bool ShowControls = false;
bool ShowCamera = false;
public override void OnInspectorGUI() {
PlayerManager manager = (PlayerManager)target;
ShowMonitor = EditorGUILayout.Foldout(ShowMonitor, "Debugging Monitored Variables");
if (ShowMonitor) {
EditorGUILayout.LabelField(string.Format("Is Walking: {0}", manager.anim.IsWalking));
EditorGUILayout.LabelField(string.Format("Is Running: {0}", manager.anim.IsRunning));
EditorGUILayout.LabelField(string.Format("Is Jumping: {0}", !manager.anim.Grounded));
EditorGUILayout.LabelField(string.Format("Is Crouching: {0}", manager.anim.IsCrouching));
EditorGUILayout.LabelField(string.Format("Is Equipped: {0}", manager.anim.IsEquiped));
EditorGUILayout.LabelField(string.Format("Is Attacking: {0}", manager.anim.IsAttacking));
EditorGUILayout.LabelField(string.Format("Can Perform Attack 1: {0}", manager.anim.CanAttack1));
EditorGUILayout.LabelField(string.Format("Can Perform Attack 2: {0}", manager.anim.CanAttack2));
EditorGUILayout.LabelField(string.Format("Current Animation: {0}", manager.anim.CurrentAnimation.name));
}
ShowStats = EditorGUILayout.Foldout(ShowStats, "Player");
if (ShowStats) {
manager.stats.CurrentHealth = EditorGUILayout.IntField("Current Health: ", manager.stats.CurrentHealth);
manager.stats.MaximumHealth = EditorGUILayout.IntField("Maximum Health: ", manager.stats.MaximumHealth);
manager.stats.LowHealth = EditorGUILayout.IntField("Low Health: ", manager.stats.LowHealth);
EditorGUILayout.Separator();
manager.stats.BaseStrength = EditorGUILayout.IntField("Base Strength: ", manager.stats.BaseStrength);
manager.stats.StrengthMultiplier = EditorGUILayout.IntSlider("Multiplier: ", manager.stats.StrengthMultiplier, 1, 10);
EditorGUILayout.Separator();
manager.stats.BaseDefense = EditorGUILayout.IntField("Base Defense: ", manager.stats.BaseDefense);
manager.stats.DefenseMultiplier = EditorGUILayout.IntSlider("Multiplier", manager.stats.DefenseMultiplier, 1, 10);
EditorGUILayout.Separator();
manager.stats.Money = EditorGUILayout.IntField("Money: ", manager.stats.Money);
manager.stats.HealthPacks = EditorGUILayout.IntField("Health Packs: ", manager.stats.HealthPacks);
manager.stats.HealthPackValue = EditorGUILayout.IntField("Health Pack Value: ", manager.stats.HealthPackValue);
}
ShowAnim = EditorGUILayout.Foldout(ShowAnim, "Animations");
if (ShowAnim) {
manager.anim.Animator = (Animation)EditorGUILayout.ObjectField(manager.anim.Animator, (typeof(Animation)));
manager.anim.Controller = (CharacterController)EditorGUILayout.ObjectField(manager.anim.Controller, (typeof(CharacterController)));
manager.anim.RunSpeed = EditorGUILayout.FloatField("Run Speed:", manager.anim.RunSpeed);
EditorGUILayout.Separator();
EditorGUILayout.LabelField("Unequipped Animations");
manager.anim.Idle = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Idle, (typeof(AnimationClip)));
manager.anim.Walk = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Walk, (typeof(AnimationClip)));
manager.anim.Run = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Run, (typeof(AnimationClip)));
manager.anim.Jump = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Jump, (typeof(AnimationClip)));
manager.anim.Crouch = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Crouch, (typeof(AnimationClip)));
manager.anim.Equip = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Equip, (typeof(AnimationClip)));
EditorGUILayout.Separator();
EditorGUILayout.LabelField("Equipped Animations");
manager.anim.IdleEquiped = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.IdleEquiped, (typeof(AnimationClip)));
manager.anim.WalkEquiped = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.WalkEquiped, (typeof(AnimationClip)));
manager.anim.RunEquiped = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.RunEquiped, (typeof(AnimationClip)));
manager.anim.JumpEquiped = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.JumpEquiped, (typeof(AnimationClip)));
manager.anim.BlockIdle = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.BlockIdle, (typeof(AnimationClip)));
manager.anim.BlockMoving = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.BlockMoving, (typeof(AnimationClip)));
manager.anim.Attack1 = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Attack1, (typeof(AnimationClip)));
manager.anim.Attack2 = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Attack2, (typeof(AnimationClip)));
manager.anim.Unequip = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Unequip, (typeof(AnimationClip)));
EditorGUILayout.Separator();
EditorGUILayout.LabelField("Universal Animations");
manager.anim.Death = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.Death, (typeof(AnimationClip)));
manager.anim.ReactToDamage = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.ReactToDamage, (typeof(AnimationClip)));
manager.anim.ReactToLowHealth = (AnimationClip)EditorGUILayout.ObjectField(manager.anim.ReactToLowHealth, (typeof(AnimationClip)));
}
}
}
Comment