Наследование: System.IDisposable
Пример #1
0
        private void CreateGUI()
        {
            AssetUpdater updater = AssetUpdater.Instance;

            _gui = new GUIVertical();
            GUIScrollView scrollView = _gui.Add(new GUIScrollView()) as GUIScrollView;

            scrollView.Add(new GUILabel(new GUIContent("Installed Assets")));

            GUIStyle style = CreateBackgroundStyle(55, 70);

            _assetUpdateLabels           = new List <GUILabel>();
            _assetUpdateButtonContainers = new List <GUIHorizontal>();

            GUIStyle statusStyle = new GUIStyle();

            statusStyle.margin           = new RectOffset(2, 4, 2, 2);
            statusStyle.normal.textColor = new Color(0.7f, 0.7f, 0.7f);
            statusStyle.alignment        = TextAnchor.MiddleRight;

            int count = updater.AssetCount;

            for (int i = 0; i < count; i++)
            {
                AssetVersion localVersion  = updater.GetLocalVersion(i);
                AssetVersion remoteVersion = updater.GetRemoteVersion(i);

                GUIHorizontal bar           = scrollView.Add(new GUIHorizontal(style)) as GUIHorizontal;
                GUIVertical   infoContainer = bar.Add(new GUIVertical()) as GUIVertical;
                infoContainer.Add(new GUILabel(new GUIContent(localVersion.Name + " (" + localVersion.Version + ")")));
                infoContainer.Add(new GUILabel(new GUIContent(localVersion.Author)));

                string labelText = UpdateTextForVersion(localVersion, remoteVersion);

                GUIVertical updateContainer = bar.Add(new GUIVertical()) as GUIVertical;
                GUILabel    label           = updateContainer.Add(new GUILabel(new GUIContent(labelText))) as GUILabel;
                label.style = statusStyle;

                GUIHorizontal buttonsContainer = updateContainer.Add(new GUIHorizontal()) as GUIHorizontal;
                GUIButton     button           = buttonsContainer.Add(new GUIButton(new GUIContent("Release Notes"),
                                                                                    ReleaseNotesButtonPressed)) as GUIButton;
                button.tag = i;

                button = buttonsContainer.Add(new GUIButton(new GUIContent("Download"),
                                                            DownloadButtonPressed)) as GUIButton;
                button.tag = i;

                buttonsContainer.isHidden = remoteVersion == null ||
                                            (localVersion.Version < remoteVersion.Version) == false;

                _assetUpdateLabels.Add(label);
                _assetUpdateButtonContainers.Add(buttonsContainer);
            }

            GUIHorizontal refreshContainer = scrollView.Add(new GUIHorizontal()) as GUIHorizontal;

            refreshContainer.Add(new GUISpace(true));
            refreshContainer.Add(new GUIButton(new GUIContent("Refresh"), RefreshButtonPressed));
        }
Пример #2
0
        GUIFoldout CreateHelpFoldout()
        {
            GUIFoldout    foldout      = new GUIFoldout(Localize.GUI("Help"));
            GUIHorizontal indentLayout = foldout.Add(new GUIHorizontal()) as GUIHorizontal;

            indentLayout.Add(new GUISpace());
            GUIVertical layout = indentLayout.Add(new GUIVertical()) as GUIVertical;

            layout.Add(new GUILabel(Localize.GUI("Alt/Alt+Shift: cycle editor modes")));
            layout.Add(new GUILabel(Localize.GUI("Camera Mode:\nA/S/W/D to move\nLMB to look")));
            layout.Add(new GUILabel(Localize.GUI("Coverage Paint Mode:\nLMB to increase coverage\nLMB+Shift to decrease coverage")));
            layout.Add(new GUILabel(Localize.GUI("Cloud Type Paint Mode:\nLMB to increase cloud type\nLMB+Shift to decrease cloud type")));
            layout.Add(new GUILabel(Localize.GUI("Brush Properties:\nBrush size, opacity & texture can be altered\nfrom the Brush Properties foldout.\nHolding Control while moving the mouse\nin either paint mode adjusts brush size.")));
            layout.Add(new GUIButton(Localize.GUI("Display full documentation")));
            return(foldout);
        }
 void OnDisable()
 {
     _gui                = null;
     _guiSide            = null;
     _guiFrameCount      = null;
     _guiFrameWidth      = null;
     _guiFrameHeight     = null;
     _guiCurrentFrame    = null;
     _guiPositionOffset  = null;
     _guiScaleOffset     = null;
     _guiAnimationClips  = null;
     _guiAnimationClips  = null;
     _guiMaterials       = null;
     _guiStartRotation   = null;
     _guiEndRotation     = null;
     _guiLoopCount       = null;
     _guiPingPong        = null;
     _guiSpriteSheetName = null;
     _guiExport          = null;
     _guiPreview         = null;
 }
        private void RebuildGUI(Texture2D texture)
        {
            StorePrefs();

            _gui = new GUIVertical();
            GUIScrollView scroll = _gui.Add(new GUIScrollView()) as GUIScrollView;

            _guiTexture = scroll.Add(new GUITextureField(new GUIContent("Palette Texture"),
                                                         PaletteTextureChanged,
                                                         PaletteTextureWillChange)) as GUITextureField;
            _guiTexture.texture = texture;

            if (texture == null)
            {
                return;
            }

            if (IsTextureReadWrite(texture))
            {
                _guiEditMode = scroll.Add(new GUIEnumPopup(new GUIContent("Edit Mode",
                                                                          "Palette edit operations affect either the single color or all colors in row/column/palette."),
                                                           PaletteEditMode.Single)) as GUIEnumPopup;

                scroll.Add(new GUIIntSlider(new GUIContent("Shades", "Number of shades per color in palette"),
                                            texture.height, 2, 16, ShadeCountChanged));
                _guiColorFields = new List <GUIColorField>();

                // Adding 15 accounts for horizontal scrollbar if needed.
                // Need a non-hardcoded-hacky way of getting this info...
                float         maxHeight     = texture.height * 20.0f + 15.0f;
                GUIScrollView paletteScroll = scroll.Add(new GUIScrollView(GUILayout.MaxHeight(maxHeight))) as GUIScrollView;
                for (int y = texture.height - 1; y >= 0; y--)
                {
                    GUIHorizontal horizontal = paletteScroll.Add(new GUIHorizontal()) as GUIHorizontal;
                    for (int x = 0; x < texture.width; x++)
                    {
                        GUIColorField color = horizontal.Add(new GUIColorField(null, ColorChanged)) as GUIColorField;
                        color.color       = texture.GetPixel(x, y);
                        color.tag         = y * texture.width + x;
                        color.controlName = PaletteControlName + color.tag;
                        _guiColorFields.Add(color);
                    }
                }

                scroll.Add(new GUISpace());
                _guiHue = scroll.Add(new GUISlider(new GUIContent("Hue Offset",
                                                                  "Amount to offset hue when generating shades"), 0.0f, -1.0f, 1.0f)) as GUISlider;
                _guiSaturation = scroll.Add(new GUISlider(new GUIContent("Saturation Offset",
                                                                         "Amount to offset saturation when generating shades"), 0.0f, -1.0f, 1.0f)) as GUISlider;
                _guiLuminance = scroll.Add(new GUISlider(new GUIContent("Luminance Offset",
                                                                        "Amount to offset luminance when generating shades"), 0.0f, -1.0f, 1.0f)) as GUISlider;
                scroll.Add(new GUIButton(new GUIContent("Generate Shades", "Generate shades from root colors"), GenerateShadesClicked));

                LoadPrefs();
            }
            else
            {
                HandleTextureNotReadWrite();
            }

            Repaint();
        }
Пример #5
0
        void CreateGUI()
        {
            int      padding = 4;
            GUIStyle style   = new GUIStyle();

            style.padding = new RectOffset(padding, padding, padding, padding);

            _gui = new GUIVertical();

            GUIHorizontal toolLayout = new GUIHorizontal(style);

            toolLayout.Add(new GUIButton(Localize.GUI(null, "Toggle properties panel",
                                                      "Assets/kode80/Clouds/Editor/gui/button_properties.png"),
                                         TogglePropertiesPanel));
            toolLayout.Add(new GUISpace());
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Create a new coverage map",
                                                      "Assets/kode80/Clouds/Editor/gui/button_new.png"),
                                         NewCoverageMapAction));
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Save the current coverage map",
                                                      "Assets/kode80/Clouds/Editor/gui/button_save.png"),
                                         SaveCoverageMapAction));
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Save the current coverage map as a new file",
                                                      "Assets/kode80/Clouds/Editor/gui/button_saveas.png"),
                                         SaveCoverageMapAsAction));
            toolLayout.Add(new GUISpace());
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Export cubemap from current camera",
                                                      "Assets/kode80/Clouds/Editor/gui/button_cubemap.png"),
                                         ExportCubemapAction));

            toolLayout.Add(new GUISpace(true));
            GUIContent[] toolbarContent = new GUIContent[] {
                Localize.GUI(null, null, "Assets/kode80/Clouds/Editor/gui/button_camera.png"),
                Localize.GUI(null, null, "Assets/kode80/Clouds/Editor/gui/button_coverage.png"),
                Localize.GUI(null, null, "Assets/kode80/Clouds/Editor/gui/button_type.png")
            };
            _guiToolbar = toolLayout.Add(new GUIToolbar(toolbarContent, ChangeModeAction)) as GUIToolbar;
            toolLayout.Add(new GUISpace(true));
            toolLayout.Add(new GUIButton(Localize.GUI(null, "Clear the current coverage map",
                                                      "Assets/kode80/Clouds/Editor/gui/button_clearmap.png"),
                                         ClearCoverageMapAction));

            GUIFoldout helpFoldout = CreateHelpFoldout();

            GUIFoldout editorFoldout = new GUIFoldout(Localize.GUI("Editor Properties"));

            editorFoldout.Add(new GUIToggle(Localize.GUI("Continuous Update",
                                                         "If disabled, the editor will only render on changes"),
                                            ContinuousUpdateToggleAction));

            if (_cameraComponents.Length > 0)
            {
                _guiCameraFoldout = new GUIFoldout(Localize.GUI("Editor Camera"));
                foreach (MonoBehaviour component in _cameraComponents)
                {
                    GUIToggle toggle = new GUIToggle(new GUIContent(component.GetType().Name), CameraComponentToggled);
                    toggle.isToggled = component.enabled;
                    _guiCameraFoldout.Add(toggle);
                }
            }

            GUIFoldout brushFoldout = new GUIFoldout(Localize.GUI("Brush Properties"));

            _guiBrushBlendValues = brushFoldout.Add(new GUIToggle(Localize.GUI("Blend Values", "Blend values when painting or set to a specific value"),
                                                                  UpdateBrushPropertiesAction)) as GUIToggle;
            _guiBrushOpacity = brushFoldout.Add(new GUISlider(Localize.GUI("Opacity", "Brush opacity"),
                                                              0.2f, 0.0f, 1.0f,
                                                              UpdateBrushPropertiesAction)) as GUISlider;
            _guiBrushSize = brushFoldout.Add(new GUIIntSlider(Localize.GUI("Size", "Brush size"), 2, 2,
                                                              (int)EditorState.MaxCursorRadius,
                                                              UpdateBrushPropertiesAction)) as GUIIntSlider;
            _guiBrushTexture = brushFoldout.Add(new GUITextureField(Localize.GUI("Brush", "Brush texture"),
                                                                    UpdateBrushPropertiesAction)) as GUITextureField;

            GUIFoldout sunFoldout = new GUIFoldout(Localize.GUI("Sun Properties"));

            _guiSunRotation = sunFoldout.Add(new GUIVector3Field(Localize.GUI("Rotation", "Sun's rotation"),
                                                                 UpdateSunPropertiesAction)) as GUIVector3Field;
            _guiSunColor = sunFoldout.Add(new GUIColorField(Localize.GUI("Color", "Sun's color"),
                                                            UpdateSunPropertiesAction)) as GUIColorField;

            GUIFoldout cloudsFoldout = new GUIFoldout(Localize.GUI("Clouds Properties"));

            GUIHorizontal subLayout = new GUIHorizontal();

            subLayout.Add(new GUISpace());
            subLayout.Add(new GUIButton(Localize.GUI("Load Settings",
                                                     "Load key render settings from asset"),
                                        LoadRenderSettingsAction));
            subLayout.Add(new GUIButton(Localize.GUI("Save Settings",
                                                     "Save key render settings to asset"),
                                        SaveRenderSettingsAction));

            cloudsFoldout.Add(subLayout);
            cloudsFoldout.Add(new GUISpace());
            cloudsFoldout.Add(new GUIDefaultInspector(_clouds));

            GUIScrollView scrollView = new GUIScrollView();

            scrollView.Add(helpFoldout);
            scrollView.Add(editorFoldout);
            if (_cameraComponents.Length > 0)
            {
                scrollView.Add(_guiCameraFoldout);
            }
            scrollView.Add(brushFoldout);
            scrollView.Add(sunFoldout);
            scrollView.Add(cloudsFoldout);

            _guiPropertiesPanel = new GUIVertical(GUILayout.MaxWidth(320.0f));
            _guiPropertiesPanel.Add(scrollView);

            _guiScenePlaceholder = new GUIVertical(GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true));
            _guiScenePlaceholder.shouldStoreLastRect = true;

            GUIHorizontal lowerLayout = new GUIHorizontal();

            lowerLayout.Add(_guiPropertiesPanel);
            lowerLayout.Add(_guiScenePlaceholder);

            _gui.Add(toolLayout);
            _gui.Add(lowerLayout);

            // Update properties
            _guiBrushBlendValues.isToggled = _editorState.cursorBlendValues;
            _guiBrushOpacity.value         = _editorState.cursorOpacity;
            _guiBrushSize.value            = (int)_editorState.cursorRadius * 2;
            _guiBrushTexture.texture       = _editorState.brushTexture;
            _guiSunColor.color             = _clouds.sunLight.color;
            _guiSunRotation.vector         = _clouds.sunLight.transform.eulerAngles;
        }
        void OnEnable()
        {
            CreateExportFolderIfNeeded();

            _lastFrameTime = Time.realtimeSinceStartup;

            _gui = new GUIHorizontal();

            GUIVertical sideContainer = _gui.Add(new GUIVertical(GUILayout.MaxWidth(290.0f))) as GUIVertical;

            _guiSide = sideContainer.Add(new GUIScrollView()) as GUIScrollView;

            GUIObjectField <GameObject> guiGameObject = _guiSide.Add(new GUIObjectField <GameObject>(new GUIContent("GameObject", "GameObject to render as sprite sheet"),
                                                                                                     true, GameObjectChanged)) as GUIObjectField <GameObject>;

            _guiFrameCount = _guiSide.Add(new GUIIntSlider(new GUIContent("Frame Count", "Number of frames in the sprite sheet"),
                                                           12, 1, 64, FrameCountChanged)) as GUIIntSlider;
            _guiFrameWidth = _guiSide.Add(new GUIIntSlider(new GUIContent("Frame Width", "Width of each frame in the sprite sheet"),
                                                           100, 32, 512, ResizeFrame)) as GUIIntSlider;
            _guiFrameHeight = _guiSide.Add(new GUIIntSlider(new GUIContent("Frame Height", "Height of each frame in the sprite sheet"),
                                                            100, 32, 512, ResizeFrame)) as GUIIntSlider;
            _guiFOV = _guiSide.Add(new GUISlider(new GUIContent("FOV"), 20, 1, 179, OffsetChanged)) as GUISlider;

            _guiSide.Add(new GUISpace());
            _guiCurrentFrame = _guiSide.Add(new GUIIntSlider(new GUIContent("Current Frame"),
                                                             0, 0, _guiFrameCount.value - 1, RenderPreviewAction)) as GUIIntSlider;
            _guiDuration = _guiSide.Add(new GUISlider(new GUIContent("Duration"),
                                                      1, 0, 100, RenderPreviewAction)) as GUISlider;
            _guiPlay = _guiSide.Add(new GUIToggle(new GUIContent("Play"))) as GUIToggle;

            _guiSide.Add(new GUISpace());
            GUIFoldout offsetFoldout = _guiSide.Add(new GUIFoldout(new GUIContent("Position/Scale"))) as GUIFoldout;

            _guiPositionOffset = offsetFoldout.Add(new GUIVector3Field(new GUIContent("Position Offset"), OffsetChanged)) as GUIVector3Field;
            _guiScaleOffset    = offsetFoldout.Add(new GUISlider(new GUIContent("Scale Offset"), 0.0f, -10.0f, 10.0f, OffsetChanged)) as GUISlider;

            _guiAnimationClips = _guiSide.Add(new GUISpriteSheetClips(RenderPreviewAction)) as GUISpriteSheetClips;
            _guiMaterials      = _guiSide.Add(new GUISpriteSheetMaterials(RenderPreviewAction)) as GUISpriteSheetMaterials;

            GUIFoldout rotationFoldout = _guiSide.Add(new GUIFoldout(new GUIContent("Rotation"))) as GUIFoldout;

            _guiStartRotation = rotationFoldout.Add(new GUIVector3Field(new GUIContent("Start Rotation"), RenderPreviewAction)) as GUIVector3Field;
            _guiEndRotation   = rotationFoldout.Add(new GUIVector3Field(new GUIContent("End Rotation"), RenderPreviewAction)) as GUIVector3Field;

            GUIFoldout loopFoldout = _guiSide.Add(new GUIFoldout(new GUIContent("Rotation/Material Looping"))) as GUIFoldout;

            _guiLoopCount = loopFoldout.Add(new GUIIntSlider(new GUIContent("Loop Count"), 1, 1, 10, RenderPreviewAction)) as GUIIntSlider;
            _guiPingPong  = loopFoldout.Add(new GUIToggle(new GUIContent("Pingpong"), RenderPreviewAction)) as GUIToggle;

            GUIFoldout    outlineFoldout = _guiSide.Add(new GUIFoldout(new GUIContent("Outline Effect"))) as GUIFoldout;
            GUIColorField outlineColor   = outlineFoldout.Add(new GUIColorField(new GUIContent("Color"),
                                                                                OutlineColorChanged)) as GUIColorField;
            GUISlider outlineThreshold = outlineFoldout.Add(new GUISlider(new GUIContent("Threshold"),
                                                                          0.05f, 0.0f, 0.05f, OutlineThresholdChanged)) as GUISlider;

            _guiSide.Add(new GUISpace());
            _guiSpriteSheetName = _guiSide.Add(new GUITextField(new GUIContent("Sprite Sheet Name"))) as GUITextField;
            _guiExport          = _guiSide.Add(new GUIButton(new GUIContent("Export Sprite Sheet"), ExportSpriteSheet)) as GUIButton;

            _guiPreview = _gui.Add(new GUIVertical(GUILayout.ExpandWidth(true), GUILayout.ExpandHeight(true))) as GUIVertical;
            _guiPreview.shouldStoreLastRect = true;

            InitPreviewRenderTexture();
            InitPreviewCamera();
            InitRootGameObject();
            guiGameObject.value = _modelGameObject;
            GameObjectChanged(guiGameObject);
            RenderPreview(0);

            _guiStartRotation.vector = Vector3.zero;
            _guiEndRotation.vector   = Vector3.zero;
            outlineColor.color       = _previewOutline.outlineColor;
            outlineThreshold.value   = _previewOutline.depthThreshold;
        }