public override void OnInspectorGUI() { serializedObject.Update(); EditorGUI.BeginChangeCheck(); EditorGUI.BeginDisabledGroup(true); { script = (MonoScript)EditorGUILayout.ObjectField("Script", script, typeof(MonoScript), false); } EditorGUI.EndDisabledGroup(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); { EditorGUI.indentLevel++; OptionFoldout = EditorGUILayout.Foldout(OptionFoldout, "Options"); EditorGUI.indentLevel--; if (OptionFoldout) { EditorGUILayout.BeginHorizontal(NatarEditor.FlatBox); { EditorGUILayout.PropertyField(key, new GUIContent("Data key", "Redis data key holding intrinsics parameters informations."), GUILayout.MinWidth(50)); if (GUILayout.Button(new GUIContent("T", "Test if the key contains data."), EditorStyles.miniButton, GUILayout.Width(18))) { if (C.state != ServiceStatus.DISCONNECTED) { C.init(); } } NatarEditor.DrawServiceStatus(C.state); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(NatarEditor.FlatBox); { EditorGUILayout.PropertyField(outImage, new GUIContent("Out image", ""), GUILayout.MinWidth(50)); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(NatarEditor.FlatBox); { GUILayout.FlexibleSpace(); Texture2D tex = C.GetCurrentTexture(); if (tex != null) { NatarEditor.DrawTexture(tex); } else { GUILayout.Label("No preview available."); } GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); } } EditorGUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); if (EditorGUI.EndChangeCheck()) { // When a property is accessed directly from script instead of via serialized properties // pressing play causes the property to reset to its original value. // Setting the target dirty prevent this effect Undo.RecordObject(target, "CameraPlayback values changed"); EditorUtility.SetDirty(target); } }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUI.BeginChangeCheck(); EditorGUI.BeginDisabledGroup(true); { script = (MonoScript)EditorGUILayout.ObjectField("Script", script, typeof(MonoScript), false); } EditorGUI.EndDisabledGroup(); EditorGUILayout.BeginVertical(EditorStyles.helpBox); { EditorGUI.indentLevel++; OptionFoldout = EditorGUILayout.Foldout(OptionFoldout, "Options"); EditorGUI.indentLevel--; if (OptionFoldout) { #region datakey EditorGUILayout.BeginHorizontal(NatarEditor.FlatBox); { EditorGUILayout.PropertyField(key, new GUIContent("Data key", "Redis data key holding intrinsics parameters informations."), GUILayout.MinWidth(50)); if (GUILayout.Button(new GUIContent("T", "Test if the key contains data."), EditorStyles.miniButton, GUILayout.Width(18))) { if (T.state != ServiceStatus.DISCONNECTED) { T.init(); } } NatarEditor.DrawServiceStatus(T.state); } EditorGUILayout.EndHorizontal(); #endregion #region targetmodel EditorGUILayout.BeginVertical(NatarEditor.FlatBox); { EditorGUILayout.PropertyField(targetModel, new GUIContent("Target model", "3D model to apply the texture to.")); if (T.targetModel == null) { EditorGUILayout.BeginVertical(NatarEditor.StyleRed); { EditorGUILayout.HelpBox("The target model is required for the component to work.", MessageType.None, true); } EditorGUILayout.EndVertical(); } else if (T.targetModel.GetComponent <Renderer>() == null) { EditorGUILayout.BeginVertical(NatarEditor.StyleOrange); { EditorGUILayout.HelpBox("The target model must have a material in order for the texture to be set.", MessageType.None, true); } EditorGUILayout.EndVertical(); } } EditorGUILayout.EndVertical(); #endregion #region texture EditorGUILayout.BeginHorizontal(NatarEditor.FlatBox); { GUILayout.FlexibleSpace(); Texture2D tex = T.GetCurrentTexture(); if (tex != null) { NatarEditor.DrawTexture(tex); } else { GUILayout.Label("No preview available."); } GUILayout.FlexibleSpace(); } GUILayout.EndHorizontal(); #endregion } } EditorGUILayout.EndVertical(); serializedObject.ApplyModifiedProperties(); if (EditorGUI.EndChangeCheck()) { // When a property is accessed directly from script instead of via serialized properties // pressing play causes the property to reset to its original value. // Setting the target dirty prevent this effect Undo.RecordObject(target, "Texturer values changed"); EditorUtility.SetDirty(target); } }