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)); }
void OnEnable() { _gui = new GUIVertical(); GUIScrollView scroll = _gui.Add(new GUIScrollView()) as GUIScrollView; _guiTexture = scroll.Add(new GUITextureField(new GUIContent("Texture"), TextureChanged)) as GUITextureField; _guiMaxColors = scroll.Add(new GUIIntSlider(new GUIContent("Max Colors"), 32, 2, 32)) as GUIIntSlider; _guiConvert = scroll.Add(new GUIButton(new GUIContent("Convert"), ConvertClicked)) as GUIButton; scroll.Add(new GUISpace()); _guiPalette = scroll.Add(new GUITextureField(new GUIContent("Palette"), null)) as GUITextureField; _guiPalettizedTexture = scroll.Add(new GUITextureField(new GUIContent("Palettized Texture"), null)) as GUITextureField; _guiSave = scroll.Add(new GUIButton(new GUIContent("Save Palette & Texture"), SaveClicked)) as GUIButton; _guiPalette.isEnabled = false; _guiPalettizedTexture.isEnabled = false; _guiSave.isEnabled = false; _guiConvert.isEnabled = false; }
public void RefreshList(GameObject gameObject) { _gui = new GUIVertical(); if (gameObject == null) { _gui.Add(new GUILabel(new GUIContent("Select a GameObject to edit it's component list."))); } else { _gui.Add(new GUIButton(new GUIContent("Highlight " + gameObject.name), HighlightSelectedGameObjectClicked)); GUIScrollView scrollView = new GUIScrollView(); _gui.Add(scrollView); Component[] components = gameObject.GetComponents <Component>(); int index = 0; int maxIndex = Math.Max(0, components.Length - 1); foreach (Component component in components) { GUIContent componentName = new GUIContent(component.GetType().Name); GUIDelayedIntField field = new GUIDelayedIntField(componentName, index++, 1, maxIndex, ComponentIndexChanged); // Transform is always first component & can't be reordered field.isEnabled = index > 1; scrollView.Add(field); } } Repaint(); }
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(); }
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; }