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); }
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); } }
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); }