Exemple #1
0
            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);
                }
            }
Exemple #2
0
            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);
                }
            }