private void Reset()
 {
     Control.Init();
 }
Esempio n. 2
0
        private void OnGUI()
        {
            curWindowSize.x = position.width;
            curWindowSize.y = position.height;

            GUILayout.BeginHorizontal(GUILayout.MinWidth(minWindowSize.x), GUILayout.MinHeight(minWindowSize.y));
            {
                GUILayout.Space(10f);
                GUILayout.BeginVertical();
                {
                    GUILayout.Space(10f);

                    GUILayout.Label(Loc.WINDOW_HEADER, EditorStyles.boldLabel);
                    GUILayout.Label(Loc.HELP_HEADER, EditorStyles.helpBox);

                    GUILayout.Space(10f);

                    GUILayout.Label(Loc.LABEL_LIBRARY, EditorStyles.boldLabel);
                    GUILayout.BeginHorizontal();
                    {
                        Control.library = (PhysicalMaterialLibrary)EditorGUILayout.ObjectField(Control.library, typeof(PhysicalMaterialLibrary), false);
                        if (Control.library == null)
                        {
                            if (GUILayout.Button(Loc.BUTTON_CREATELIBRARY))
                            {
                                Control.CreateNewMaterialLibrary();
                            }
                        }
                    }
                    GUILayout.EndHorizontal();

                    if (Control.library != null)
                    {
                        GUILayout.Space(10f);

                        GUILayout.BeginHorizontal();
                        {
                            GUILayout.Space(10f);

                            GUILayout.Label(Loc.LABEL_GRAVITY, GUILayout.Width(150f));
                            Control.library.gravity = EditorGUILayout.Vector3Field(GUIContent.none, Control.library.gravity); // read in the gravity desired
                            Physics.gravity         = Control.library.gravity;                                                // update global gravity
                        }
                        GUILayout.EndHorizontal();
                        GUILayout.Space(10f);

                        RenderColumnHeaders();
                        GUILayout.Space(5f);

                        for (var i = 0; i < Control.library.entries.Count; i++)
                        {
                            var entry = Control.library.entries[i];

                            GUILayout.BeginHorizontal();
                            {
                                GUILayout.Label(i + ":", GUILayout.Width(30f));
                                GUILayout.Space(5f);
                                entry.name = GUILayout.TextField(entry.name, GUILayout.Width(80f));
                                if (entry.physicMaterial == null)
                                {
                                    if (GUILayout.Button(Loc.BUTTON_CREATEPHYSICALMATERIAL, GUILayout.Width(150f)))
                                    {
                                        entry.physicMaterial = Control.CreatePhysicalMaterial();
                                    }
                                    GUILayout.Space(480f);
                                }
                                else
                                {
                                    entry.physicMaterial = (PhysicMaterial)EditorGUILayout.ObjectField(entry.physicMaterial, typeof(PhysicMaterial), false, GUILayout.Width(150f));
                                    GUILayout.Space(5f);
                                    entry.dynamicFriction = EditorGUILayout.Slider(entry.dynamicFriction, 0, 1, GUILayout.Width(150f));
                                    GUILayout.Space(5f);
                                    entry.staticFriction = EditorGUILayout.Slider(entry.staticFriction, 0, 1, GUILayout.Width(150f));
                                    GUILayout.Space(5f);
                                    entry.bounciness = EditorGUILayout.Slider(entry.bounciness, 0, 1, GUILayout.Width(150f));
                                    GUILayout.Space(5f);
                                }

                                if (GUILayout.Button(Loc.BUTTON_DELETEMAT, GUILayout.Width(50f)))
                                {
                                    Control.DeleteMaterialFromLibrary(entry);
                                }
                            }
                            GUILayout.EndHorizontal();
                        }
                        GUILayout.Space(10f);
                        GUILayout.BeginHorizontal();
                        {
                            if (GUILayout.Button(Loc.BUTTON_ADDNEWMAT, GUILayout.Width(250f), GUILayout.Height(35f)))
                            {
                                Control.AddNewPhysicalMaterial();
                            }
                        }
                        GUILayout.EndHorizontal();
                    }
                }
                GUILayout.EndVertical();
            }
            GUILayout.EndHorizontal();
        }
        private void OnGUI()
        {
            GUILayout.Space(10f);
            GUILayout.BeginVertical();
            {
                GUILayout.Space(10f);

                GUILayout.Label(Loc.WINDOW_HEADER, EditorStyles.boldLabel);
                GUILayout.Label(Loc.HELP_HEADER, EditorStyles.helpBox);

                GUILayout.Space(10f);

                if (Control.Library != null)
                {
                    GUILayout.Space(10f);

                    GUILayout.BeginHorizontal();
                    {
                        GUILayout.Space(10f);

                        GUILayout.Label(Loc.LABEL_GRAVITY, GUILayout.Width(150f));
                        Control.Library.gravity = EditorGUILayout.Vector3Field(GUIContent.none, Control.Library.gravity); // read in the gravity desired
                        Physics.gravity         = Control.Library.gravity;                                                // update global gravity
                    }
                    GUILayout.EndHorizontal();
                    GUILayout.Space(10f);

                    if (Control.Library.entries.Count > 0)
                    {
                        RenderColumnHeaders();
                    }

                    GUILayout.Space(5f);

                    scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true, GUILayout.ExpandHeight(true));
                    {
                        EditorGUI.BeginChangeCheck();
                        for (var i = 0; i < Control.Library.entries.Count; i++)
                        {
                            var entry = Control.Library.entries[i];

                            GUILayout.BeginHorizontal();
                            {
                                //GUILayout.Label(i + ":", GUILayout.Width(30f));
                                //GUILayout.Space(5f);
                                GUILayout.Space(10f);
                                if (GUILayout.Button(Loc.BUTTON_APPLY, GUILayout.Width(50f)))
                                {
                                    Control.ApplyMaterialToSelection(entry);
                                }
                                GUILayout.Space(5f);
                                entry.physicMaterial = (PhysicMaterial)EditorGUILayout.ObjectField(entry.physicMaterial, typeof(PhysicMaterial), false, GUILayout.Width(150f));

                                GUILayout.Space(5f);
                                entry.dynamicFriction = EditorGUILayout.Slider(entry.dynamicFriction, 0, 1, GUILayout.Width(150f));
                                entry.physicMaterial.dynamicFriction = entry.dynamicFriction;

                                GUILayout.Space(5f);
                                entry.staticFriction = EditorGUILayout.Slider(entry.staticFriction, 0, 1, GUILayout.Width(150f));
                                entry.physicMaterial.staticFriction = entry.staticFriction;

                                GUILayout.Space(5f);
                                entry.bounciness = EditorGUILayout.Slider(entry.bounciness, 0, 1, GUILayout.Width(150f));
                                entry.physicMaterial.bounciness = entry.bounciness;

                                GUILayout.Space(5f);
                                entry.frictionCombine = (PhysicMaterialCombine)EditorGUILayout.EnumPopup(entry.frictionCombine, GUILayout.Width(120f));
                                entry.physicMaterial.frictionCombine = entry.frictionCombine;

                                GUILayout.Space(5f);
                                entry.bounceCombine = (PhysicMaterialCombine)EditorGUILayout.EnumPopup(entry.bounceCombine, GUILayout.Width(120f));
                                entry.physicMaterial.bounceCombine = entry.bounceCombine;

                                GUILayout.Space(5f);

                                //if (GUILayout.Button(Loc.BUTTON_DELETEMAT, GUILayout.Width(50f)))
                                //{
                                //    Control.DeleteMaterialFromLibrary(entry);
                                //}
                            }
                            GUILayout.EndHorizontal();
                        }
                        EditorGUI.EndChangeCheck();
                    }
                    GUILayout.EndScrollView();

                    GUILayout.Space(10f);
                    GUILayout.BeginHorizontal();
                    {
                        if (GUILayout.Button(Loc.BUTTON_ADDNEWMAT, GUILayout.Width(250f), GUILayout.Height(35f)))
                        {
                            Control.AddNewPhysicalMaterial();
                        }

                        if (GUILayout.Button(Loc.BUTTON_REFRESHLIBRARY, GUILayout.Width(250f), GUILayout.Height(35f)))
                        {
                            Control.RefreshLibrary();
                        }

                        if (GUILayout.Button(Loc.BUTTON_SAVELIBRARY, GUILayout.Width(250f), GUILayout.Height(35f)))
                        {
                            Control.SaveMaterialLibrary();
                        }
                    }
                    GUILayout.EndHorizontal();
                }
            }
            GUILayout.EndVertical();
            GUILayout.Space(10f);
        }
Esempio n. 4
0
 public void Reset()
 {
     Control.Init();
 }