public override void OnInspectorGUI() { SABoneCollider boneCollider = (SABoneCollider)target; if (boneCollider.edittingBoneColliderProperty == null) { if (boneCollider.boneColliderProperty != null) { boneCollider.edittingBoneColliderProperty = boneCollider.boneColliderProperty.Copy(); } } SABoneColliderProperty boneColliderProperty = boneCollider.edittingBoneColliderProperty; if (boneColliderProperty != null) { SplitProperty splitProperty = boneColliderProperty.splitProperty; if (splitProperty != null) { GUILayout.Label("Split", EditorStyles.boldLabel); SABoneColliderEditorCommon.SplitInspectorGUI(splitProperty); } EditorGUILayout.Separator(); GUILayout.Label("Reducer", EditorStyles.boldLabel); SAColliderBuilderEditorCommon.ReducerInspectorGUI(boneColliderProperty.reducerProperty, ReducerOption.Advanced | ReducerOption.ColliderToChild); GUI.enabled = boneColliderProperty.reducerProperty.shapeType != ShapeType.None; EditorGUILayout.Separator(); GUILayout.Label("Collider", EditorStyles.boldLabel); SAColliderBuilderEditorCommon.ColliderInspectorGUI(boneColliderProperty.colliderProperty, ColliderOption.CreateAsset); EditorGUILayout.Separator(); GUILayout.Label("Rigidbody", EditorStyles.boldLabel); SAColliderBuilderEditorCommon.RigidbodyInspectorGUI(boneColliderProperty.rigidbodyProperty); GUI.enabled = true; } EditorGUILayout.Separator(); if (boneColliderProperty != null) { BoneProperty boneProperty = boneColliderProperty.boneProperty; if (boneProperty != null) { boneProperty.recursivery = EditorGUILayout.Toggle("Recursivery", boneProperty.recursivery); } } boneCollider.cleanupModified = EditorGUILayout.Toggle("Cleanup Modified", boneCollider.cleanupModified); boneCollider.isDebug = EditorGUILayout.Toggle("Is Debug", boneCollider.isDebug); EditorGUILayout.Separator(); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Set Default")) { if (boneCollider.defaultBoneColliderProperty != null) { float beginTime = Time.realtimeSinceStartup; boneCollider.boneColliderProperty = boneCollider.defaultBoneColliderProperty.Copy(); boneCollider.edittingBoneColliderProperty = null; Process(boneCollider); boneCollider.cleanupModified = false; boneCollider.isDebug = false; SABoneColliderEditorCommon.UnmarkManualProcessingToParent(boneCollider); boneCollider.ResetModifyName(); float endTime = Time.realtimeSinceStartup; Debug.Log("Processed.[" + (endTime - beginTime) + " sec]"); } } GUILayout.FlexibleSpace(); if (GUILayout.Button("Revert")) { boneCollider.edittingBoneColliderProperty = null; } if (GUILayout.Button("Cleanup")) { if (boneCollider.edittingBoneColliderProperty != null) { boneCollider.boneColliderProperty = boneCollider.edittingBoneColliderProperty; boneCollider.edittingBoneColliderProperty = null; Cleanup(boneCollider); boneCollider.cleanupModified = false; boneCollider.isDebug = false; Debug.Log("Cleanuped."); } } if (GUILayout.Button("Process")) { if (boneCollider.edittingBoneColliderProperty != null) { boneCollider.boneColliderProperty = boneCollider.edittingBoneColliderProperty; boneCollider.edittingBoneColliderProperty = null; float beginTime = Time.realtimeSinceStartup; Process(boneCollider); boneCollider.cleanupModified = false; float endTime = Time.realtimeSinceStartup; Debug.Log("Processed.[" + (endTime - beginTime) + " sec]"); } } EditorGUILayout.EndHorizontal(); }