private Clouds.EditorState FindOrCreateEditorState() { Clouds.EditorState state = GameObject.FindObjectOfType <Clouds.EditorState>(); if (state == null) { GameObject stateGO = new GameObject("CloudsEditorState"); stateGO.tag = "EditorOnly"; stateGO.hideFlags = HideFlags.HideInHierarchy; state = stateGO.AddComponent <Clouds.EditorState>(); } return(state); }
void OnEnable() { minSize = new Vector2(350.0f, 150.0f); _testButton = AssetDatabase.LoadAssetAtPath <Texture2D>("Assets/kode80/Clouds/Editor/gui/button_camera.png"); _editorState = FindOrCreateEditorState(); bool isWindowOpening = _editorState.EditorWindowEnabled(); _clouds = GameObject.FindObjectOfType <kode80Clouds>(); _fullScreenQuad = CreateFullScreenQuad(); _cloudsCamera = CreateCloudsCamera(); _fullScreenQuad.targetCamera = _cloudsCamera; _clouds.SetCamera(_cloudsCamera); _clouds.onValidateDelegate += OnCloudsValidate; CreateGUI(); _painter = CreateInstance <TexturePainter>(); _painter.hideFlags = HideFlags.HideAndDontSave; _coverage = _editorState.tempCoverage; if (isWindowOpening) { if (_clouds.cloudCoverage != null) { _editorState.CopyCoverageAssetToTemp(_clouds.cloudCoverage as Texture2D); } else { ClearCoverage(); } } _originalCoverage = _clouds.cloudCoverage; _clouds.cloudCoverage = _coverage; UpdateFullScreenQuadMaterial(); wantsMouseMove = true; SetNeedsUpdate(); _lastFrameTime = Time.realtimeSinceStartup; RefreshCamerasArray(); RefreshRenderTexture(); EditorApplication.modifierKeysChanged += OnModifierKeysChanged; }