public override void OnInspectorGUI() { EmptyMarker o = (EmptyMarker)target; EditorGUI.BeginChangeCheck(); var newMf = (MeshFilter)EditorGUILayout.ObjectField("MeshFilter", o.mf, typeof(MeshFilter), true); if (EditorGUI.EndChangeCheck()) { o.mf = newMf; EUtil.SetDirty(o); } EUtil.PushGUIEnable(o.mf != null); { EditorGUI.BeginChangeCheck(); var newMesh = (Mesh)EditorGUILayout.ObjectField("Mesh", o.mesh, typeof(Mesh), false); if (EditorGUI.EndChangeCheck()) { o.mesh = newMesh; EUtil.SetDirty(o); } EditorGUI.BeginChangeCheck(); var newMat = (Material)EditorGUILayout.ObjectField("Material", o.material, typeof(Material), false); if (EditorGUI.EndChangeCheck()) { o.material = newMat; EUtil.SetDirty(o); } EditorGUI.BeginChangeCheck(); var newSelMat = (Material)EditorGUILayout.ObjectField("Selected Material", o.selectedMaterial, typeof(Material), false); if (EditorGUI.EndChangeCheck()) { o.selectedMaterial = newSelMat; EUtil.SetDirty(o); } } EUtil.PopGUIEnable(); EditorGUI.BeginChangeCheck(); o.jumpTo = (Transform)EditorGUILayout.ObjectField("Jump To", o.jumpTo, typeof(Transform), true); if (EditorGUI.EndChangeCheck()) { EUtil.SetDirty(o); } // create "mesh" child object to hold marker EditorGUILayout.BeginHorizontal(); { Rect rc = GUILayoutUtility.GetRect(new GUIContent("Presets"), GUI.skin.button); if (GUI.Button(rc, new GUIContent("Presets", "select presets marker"))) { PopupWindow.Show(rc, new EmptyMarkerPresetsPopup(o)); } if (GUILayout.Button(new GUIContent("Delete", "delete marker"))) { if (o.mf != null) { MUndo.DestroyObj(o.mf.gameObject); } MUndo.DestroyObj(o); EditorGUIUtility.ExitGUI(); } if (o.jumpTo != null) { if (GUILayout.Button(new GUIContent("Target", "jump to the target transform"))) { Selection.activeTransform = o.jumpTo; } } } EditorGUILayout.EndHorizontal(); }
public override void OnInspectorGUI() { AngleConstraintMB mb = (AngleConstraintMB)target; mb.enabled = EditorGUILayout.Toggle("Enabled", mb.enabled); EditorGUI.BeginChangeCheck(); mb.nextJoint = EditorGUILayout.ObjectField("nextJoint", mb.nextJoint, typeof(Transform), true) as Transform; if (EditorGUI.EndChangeCheck()) { EUtil.SetDirty(mb); EUtil.RepaintSceneView(); } if (mb.nextJoint == null) { EditorGUILayout.LabelField("Set the nextJoint first..."); return; } else { EUtil.PushGUIEnable(mb.enabled); GUILayout.BeginHorizontal(); { GUILayout.Space(30f); if (EUtil.Button("ReInit", "decide all the parameters with default method", Color.green)) { Undo.RecordObject(mb, "ReInit"); mb.AutoSetParameters(); EUtil.SetDirty(mb); EUtil.RepaintSceneView(); } GUILayout.Space(30f); } GUILayout.EndHorizontal(); // min/max limit float min = mb.minLimit; float max = mb.maxLimit; EditorGUI.BeginChangeCheck(); EUtil.DrawMinMaxSlider("Angle Limits", ref min, ref max, -180f, 180f); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(mb, "Modify Angle limits"); mb.minLimit = min; mb.maxLimit = max; EUtil.SetDirty(mb); EUtil.RepaintSceneView(); } EditorGUI.BeginChangeCheck(); Vector3 newRotAxis = EUtil.DrawV3P(new GUIContent("Rotation Axis", "in parent space, in world space if no parent joint"), mb.rotAxis); Vector3 newPrimAxis = EUtil.DrawV3P(new GUIContent("Primary Axis", "in parent space, in world space if no parent joint"), mb.primAxis); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(mb, "Modify Constraint parameters"); mb.rotAxis = newRotAxis; mb.primAxis = newPrimAxis; mb.CalcInitData(); //!! recalc the startLocalRot EUtil.SetDirty(mb); EUtil.RepaintSceneView(); } ms_showDisplaySetting = EditorGUILayout.Foldout(ms_showDisplaySetting, "Display Settings:"); if (ms_showDisplaySetting) { EditorGUI.BeginChangeCheck(); ms_markerSize = EditorGUILayout.FloatField("ArcSize", ms_markerSize); ms_arcColor = EditorGUILayout.ColorField("ArcColor", ms_arcColor); if (EditorGUI.EndChangeCheck()) { EUtil.RepaintSceneView(); } } EUtil.PopGUIEnable(); } }