private void LoadSettings()
        {
            string shaderNameDiffuse  = EditorPrefs.GetString("VOXIMPORT_importDiffuseShader", "Standard");
            string shaderNameMetal    = EditorPrefs.GetString("VOXIMPORT_importMetalShader", "Standard");
            string shaderNameGlass    = EditorPrefs.GetString("VOXIMPORT_importGlassShader", "Standard");
            string shaderNameEmission = EditorPrefs.GetString("VOXIMPORT_importEmissionShader", "Standard");
            string shaderNamePlastic  = EditorPrefs.GetString("VOXIMPORT_importPlasticShader", "Standard");
            string shaderNameClouds   = EditorPrefs.GetString("VOXIMPORT_importCloudsShader", "Standard");

            importDiffuseShader  = Shader.Find(shaderNameDiffuse);
            importMetalShader    = Shader.Find(shaderNameMetal);
            importGlassShader    = Shader.Find(shaderNameGlass);
            importEmissionShader = Shader.Find(shaderNameEmission);
            importPlasticShader  = Shader.Find(shaderNamePlastic);
            importCloudsShader   = Shader.Find(shaderNameClouds);
            VerifyShaders();

            importScale        = EditorPrefs.GetFloat("VOXIMPORT_SCALE", .1f);
            importMaterials    = EditorPrefs.GetBool("VOXIMPORT_MAT", false);
            importRemoveHidden = EditorPrefs.GetBool("VOXIMPORT_HIDDEN", false);
            importRigidbody    = EditorPrefs.GetBool("VOXIMPORT_RIGIDBODY", false);
            importStatic       = EditorPrefs.GetBool("VOXIMPORT_STATIC", false);
            import2Sided       = EditorPrefs.GetBool("VOXIMPORT_SHADOW2SIDED", true);
            importSingleMesh   = EditorPrefs.GetBool("VOXIMPORT_SINGLEMESH", false);
            importPadding      = EditorPrefs.GetInt("VOXIMPORT_TEXUREPAD", 1);
            importTextureScale = EditorPrefs.GetInt("VOXIMPORT_TEXURESCALE", 1);

            importCollider = (ImportCollider)EditorPrefs.GetInt("VOXIMPORT_COLLIDER", 0);
        }
Beispiel #2
0
        private void LoadSettings()
        {
            string shaderNameDiffuse = EditorPrefs.GetString("VOXIMPORT_importDiffuseShader", "Standard");

            importDiffuseShader = Shader.Find(shaderNameDiffuse);
            VerifyShaders();

            importScale        = EditorPrefs.GetFloat("VOXIMPORT_SCALE", .1f);
            importRemoveHidden = EditorPrefs.GetBool("VOXIMPORT_HIDDEN", false);
            importRigidbody    = EditorPrefs.GetBool("VOXIMPORT_RIGIDBODY", false);
            importStatic       = EditorPrefs.GetBool("VOXIMPORT_STATIC", false);
            import2Sided       = EditorPrefs.GetBool("VOXIMPORT_SHADOW2SIDED", true);
            importPadding      = EditorPrefs.GetInt("VOXIMPORT_TEXUREPAD", 1);
            importTextureScale = EditorPrefs.GetInt("VOXIMPORT_TEXURESCALE", 1);

            importCollider = (ImportCollider)EditorPrefs.GetInt("VOXIMPORT_COLLIDER", 0);
        }
        public override void OnInspectorGUI()
        {
            ApplyRevertGUI();

            if (!importer.IsValid)
            {
                EditorGUILayout.LabelField("Invalid Vox file!");
                return;
            }

            if (importer.models.Count == 1)
            {
                EditorGUILayout.BeginHorizontal();
                string info = string.Format("{0} Voxels {1}", importer.totalVoxels, importer.Size(selectedModel).ToString());
                EditorGUILayout.LabelField(info);
                EditorGUILayout.EndHorizontal();
            }
            else
            {
                EditorGUILayout.BeginHorizontal();

                EditorGUI.BeginChangeCheck();
                importType = (ImportType)EditorGUILayout.EnumPopup(importType, GUILayout.Width(58));
                if (EditorGUI.EndChangeCheck())
                {
                    if (importType == ImportType.Merge)
                    {
                        CreatePreviewMesh(MergedModels());
                        CenterPivot();
                    }
                    else
                    {
                        CreatePreviewMesh(importer.GetData(selectedModel));
                        CenterPivot();
                    }
                }

                if (importType == ImportType.Merge)
                {
                    Vector3Int previewSize = new Vector3Int((int)previewMesh.bounds.size.x, (int)previewMesh.bounds.size.y, (int)previewMesh.bounds.size.z);
                    string     info        = string.Format("{0} Models, {1} Voxels {2}", importer.models.Count, importer.totalVoxels, previewSize.ToString());
                    EditorGUILayout.LabelField(info);
                }
                else
                {
                    EditorGUI.BeginChangeCheck();
                    selectedModel = EditorGUILayout.Popup(selectedModel, importer.modelNames.ToArray());
                    if (EditorGUI.EndChangeCheck())
                    {
                        CreatePreviewMesh(importer.GetData(selectedModel));
                        CenterPivot();
                    }

                    string info = string.Format("{0} Models {1}", importer.models.Count, importer.Size(selectedModel).ToString());
                    EditorGUILayout.LabelField(info);
                }

                EditorGUILayout.EndHorizontal();
            }

            HandlePreview();

            importScale        = EditorGUILayout.FloatField("Voxel Scale", importScale);
            importPadding      = EditorGUILayout.IntSlider("Texture Padding", importPadding, 0, 8);
            importTextureScale = EditorGUILayout.IntSlider("Texture Scale", importTextureScale, 1, 16);

            GUILayout.BeginHorizontal();
            importPivot = EditorGUILayout.Vector3Field("Pivot", importPivot);
            if (GUILayout.Button("Center", GUILayout.Width(50)))
            {
                CenterPivot();
            }
            GUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            importStatic       = EditorGUILayout.Toggle("Static", importStatic);
            importRemoveHidden = EditorGUILayout.Toggle("Remove Hidden", importRemoveHidden);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            importMaterials  = EditorGUILayout.Toggle("Materials", importMaterials);
            importSingleMesh = EditorGUILayout.Toggle("Single Mesh", importSingleMesh);
            EditorGUILayout.EndHorizontal();

            EditorGUILayout.BeginHorizontal();
            import2Sided = EditorGUILayout.Toggle("2 Sided", import2Sided);
            EditorGUILayout.EndHorizontal();

            importRigidbody = EditorGUILayout.Toggle("Rigid Body", importRigidbody);

            importCollider = (ImportCollider)EditorGUILayout.EnumPopup("Collider", importCollider);

            EditorGUILayout.BeginHorizontal();

            GUILayout.Label("Prefix", GUILayout.Width(40));
            prefix = GUILayout.TextField(prefix, GUILayout.Width(75));

            if (GUILayout.Button("Create Prefab"))
            {
                CreatePrefab();
            }

            if (GUILayout.Button("Create Voxel Data"))
            {
                CreateData();
            }
            EditorGUILayout.EndHorizontal();

            if (GUILayout.Button("Default Settings"))
            {
                DefaultSettings();
            }

            if (importMaterials)
            {
                GUILayout.Space(10);
                //EditorGUILayout.HelpBox("Materials", MessageType.None);
                importDiffuseShader  = (Shader)EditorGUILayout.ObjectField("Diffuse", importDiffuseShader, typeof(Shader), true);
                importMetalShader    = (Shader)EditorGUILayout.ObjectField("Metal", importMetalShader, typeof(Shader), true);
                importGlassShader    = (Shader)EditorGUILayout.ObjectField("Glass", importGlassShader, typeof(Shader), true);
                importEmissionShader = (Shader)EditorGUILayout.ObjectField("Emission", importEmissionShader, typeof(Shader), true);
                importPlasticShader  = (Shader)EditorGUILayout.ObjectField("Plastic", importPlasticShader, typeof(Shader), true);
                importCloudsShader   = (Shader)EditorGUILayout.ObjectField("Clouds", importCloudsShader, typeof(Shader), true);
            }
        }