Example #1
0
        private void DrawMaterial()
        {
            materialItems.Clear();

            foreach (var cachedMaterial in P3dMaterial.CachedMaterials)
            {
                if (cachedMaterial != null)
                {
                    materialItems.Add(cachedMaterial);
                }
            }

            materialScrollPosition = GUILayout.BeginScrollView(materialScrollPosition, GUILayout.ExpandHeight(true));
            var selected = DrawBrowser(materialItems, Settings.CurrentMaterial);

            if (selected != null)
            {
                LoadMaterial((P3dMaterial)selected); selectingMaterial = false;
            }
            GUILayout.EndScrollView();

            EditorGUILayout.BeginHorizontal(EditorStyles.toolbar);
            Settings.IconSize = EditorGUILayout.IntSlider(Settings.IconSize, 32, 256);

            EditorGUILayout.Separator();

            if (GUILayout.Button("Refresh", EditorStyles.toolbarButton, GUILayout.ExpandWidth(false)) == true)
            {
                P3dMaterial.ClearCache(); AssetDatabase.Refresh();
            }
            EditorGUILayout.EndHorizontal();
        }
Example #2
0
        private void ClearMaterial()
        {
            if (materialInstance != null)
            {
                DestroyImmediate(materialInstance.gameObject);
            }

            materialInstance = null;
        }
Example #3
0
        private void LoadMaterial(P3dMaterial prefab)
        {
            if (materialInstance != null)
            {
                DestroyImmediate(materialInstance.gameObject);
            }

            Settings.CurrentMaterial = prefab;

            if (EditorApplication.isPlaying == true)
            {
                materialInstance = Instantiate(prefab);

                materialInstance.gameObject.hideFlags = HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor;

                if (toolInstance != null)
                {
                    materialInstance.transform.SetParent(toolInstance.transform, false);
                }
            }

            Repaint();
        }