Custom Editor Gameobject foldout C#

Im creating a script to help me with animating a character in my game (Many pieces make it hard to animate), Im trying to organize my script some so I am looking into custom editors a bit.

This is the inspector at the moment

And here is the inspector script

using UnityEngine;
using System.Collections;
using UnityEditor;

public class SpineAnimatorEditor : Editor {

	private bool showBodyParts = false;
	private bool showBodySliders = false;

	public override void OnInspectorGUI(){

		DrawDefaultInspector ();

		showBodyParts = EditorGUILayout.Foldout(showBodyParts, "Body Parts");
		if (showBodyParts) {

		showBodySliders = EditorGUILayout.Foldout (showBodySliders, "Body Sliders");

		if (showBodySliders) {


		SpineAnimator spineScript = (SpineAnimator)target;
		if (GUILayout.Button ("Reset All")) {

I am trying to put the sliders and gameobjects into foldouts, I already have the foldouts now how would I go about putting the sliders and gameobjects in the foldout.

Sorry! I got carried away at first! :wink: Here is the correct answer to your initial question (Game Object Fields, Sliders)

public override void OnInspectorGUI ()
	MyClass aTarget = target as MyClass;

	m_showBodyParts = EditorGUILayout.Foldout (m_showBodyParts, "Show Body Parts");

	if (m_showBodyParts) {
		aTarget.m_RightLowerArmAngle = EditorGUILayout.Slider 
		aTarget.m_RArmLow = EditorGUILayout.ObjectField 
					"R Arm Low", 

However, just for foldouts and sliders you don’t need to do an editor script. The Unity inspector GUI + some Attributes will do just fine and you don’t need to create the second C# file.

If you write something like this as simple public variables to your Monobehavior:

public class MyClass : MonoBehaviour
	public class MyClassRArmData
		public GameObject m_RArmLow;
		public GameObject m_RArmUp;
		public float m_RightLowerArmAngle = 0f;
	public MyClassRArmData m_rArmData;

	public class MyClassLArmData
		public GameObject m_LArmLow;
		public GameObject m_LArmUp;
		public float m_LeftLowerArmAngle = 0f;
	public MyClassLArmData m_lArmData;


…without any additional editor class, this will appear as


You maybe can use this custom decorator GitHub - giuliano-marinelli/UnityFoldoutDecorator: Foldout as a Decorator for group variables in Unity Script Inspector for Foldout Group and Range Decorator for the sliders.