public override void OnInspectorGUI() { GUI.changed = false; OrbitSegment orbit = (OrbitSegment)target; GameObject body; GameObject centerObject = orbit.centerBody; GameObject destObject; bool vFromScript = orbit.velocityFromScript; bool shortPath = orbit.shortPath; int numPoints; centerObject = (GameObject)EditorGUILayout.ObjectField( new GUIContent("CenterObject", centerTip), orbit.centerBody, typeof(GameObject), true); body = (GameObject)EditorGUILayout.ObjectField( new GUIContent("Body", bodyTip), orbit.body, typeof(GameObject), true); vFromScript = EditorGUILayout.Toggle(new GUIContent("Velocity From Script", vTip), vFromScript); numPoints = EditorGUILayout.IntField(new GUIContent("Number of Points", rTip), orbit.numPoints); shortPath = EditorGUILayout.Toggle(new GUIContent("Short Path", shortTip), orbit.shortPath); destObject = (GameObject)EditorGUILayout.ObjectField( new GUIContent("Destination Object", dirTip), orbit.destination, typeof(GameObject), true); if (GUI.changed) { Undo.RecordObject(orbit, "OrbitEllipse Change"); orbit.centerBody = centerObject; orbit.body = body; orbit.numPoints = numPoints; orbit.velocityFromScript = vFromScript; orbit.destination = destObject; orbit.shortPath = shortPath; EditorUtility.SetDirty(orbit); } }