public static SettingsProvider CreateSettingsProvider()
    {
        SettingsProvider settingsProvider = new SettingsProvider("Project/MarchingCubes", SettingsScope.Project)
        {
            label = "Marching Cubes",

            guiHandler = (searchContext) =>
            {
                SerializedObject settings = MarchingCubesSettings.GetSerializedSettings();
                EditorGUI.BeginChangeCheck();
                settings.FindProperty("hideNonEditableChildren").boolValue = EditorGUILayout.Toggle("Hide Non-editable Children", settings.FindProperty("hideNonEditableChildren").boolValue);
                settings.FindProperty("linePreviewColour").colorValue      = EditorGUILayout.ColorField("Line Preview Colour", settings.FindProperty("linePreviewColour").colorValue);

                if (EditorGUI.EndChangeCheck() == true)
                {
                    settings.ApplyModifiedPropertiesWithoutUndo();
                    World[] worlds = GameObject.FindObjectsOfType <World>();

                    for (int i = 0; i < worlds.Length; i++)
                    {
                        worlds[i].settings = MarchingCubesSettings.GetSerializedSettings();
                    }
                }
            }
        };

        return(settingsProvider);
    }
コード例 #2
0
    void OnEnable()
    {
        lastTool         = Tools.current;
        Tools.current    = Tool.None;
        leftButtonDown   = false;
        middleButtonDown = false;
        rightButtonDown  = false;
        world            = (World)target;

        world.settings         = MarchingCubesSettings.GetSerializedSettings();
        world.densityGenerator = new DensityGenerator(world.seed);

        if (world.transform.childCount == 0)
        {
            world.AddChunks(Vector3Int.zero, Vector3Int.zero);
        }
    }
コード例 #3
0
    public static MarchingCubesSettings GetOrCreateSettings()
    {
        MarchingCubesSettings settings = AssetDatabase.LoadAssetAtPath <MarchingCubesSettings>("Assets/Editor/MarchingCubesSettings.asset");

        if (settings == null)
        {
            if (Directory.Exists("Assets/Editor") == false)
            {
                Directory.CreateDirectory("Assets/Editor");
            }

            settings = ScriptableObject.CreateInstance <MarchingCubesSettings>();
            AssetDatabase.CreateAsset(settings, "Assets/Editor/MarchingCubesSettings.asset");
            AssetDatabase.SaveAssets();
        }

        return(settings);
    }