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);
        }
Example #2
0
        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;
        }