public static RepeatedRenderer3D Create(MadPanel panel) { var bar = MadTransform.CreateChild<RepeatedRenderer3D>(panel.transform, "repeat progress bar"); TryApplyExampleTextures(bar); Selection.activeObject = bar.gameObject; return bar; }
public static RepeatedRenderer3D Create(MadPanel panel) { var bar = MadTransform.CreateChild<RepeatedRenderer3D>(panel.transform, "repeat progress bar"); TryApplyExampleTextures(bar); Selection.activeObject = bar.gameObject; return bar; }
void OnGUI() { MadGUI.Info("There's more than one Panel on the scene. Please set the one that you want to create the bar on."); panel = EditorGUILayout.ObjectField("Panel", panel, typeof(MadPanel), true) as MadPanel; barType = (EnergyBar3DBase.BarType) EditorGUILayout.EnumPopup("Bar Type", barType); GUI.enabled = panel != null; if (MadGUI.Button("Create", Color.green)) { EnergyBarUtils.Create3DBar(barType, panel); Close(); } GUI.enabled = true; }
void OnGUI() { MadGUI.Info("There's more than one Panel on the scene. Please set the one that you want to create the bar on."); panel = EditorGUILayout.ObjectField("Panel", panel, typeof(MadPanel), true) as MadPanel; barType = (EnergyBar3DBase.BarType)EditorGUILayout.EnumPopup("Bar Type", barType); GUI.enabled = panel != null; if (MadGUI.Button("Create", Color.green)) { EnergyBarUtils.Create3DBar(barType, panel); Close(); } GUI.enabled = true; }
public static EnergyBar3DBase Create3DBar(EnergyBar3DBase.BarType type, MadPanel panel) { switch (type) { case EnergyBar3DBase.BarType.Filled: return FilledRenderer3DBuilder.Create(panel); case EnergyBar3DBase.BarType.Repeated: return RepeatRenderer3DBuilder.Create(panel); case EnergyBar3DBase.BarType.Sequence: return SequenceRenderer3DBuilder.Create(panel); case EnergyBar3DBase.BarType.Transform: return TransformRenderer3DBuilder.Create(panel); default: Debug.LogError("Unknown bar type: " + type); return null; } }
// =========================================================== // Static Methods // =========================================================== public static void CreateWizard() { var panel = MadPanel.UniqueOrNull(); if (panel == null) { if (EditorUtility.DisplayDialog( "Init Scene?", "Scene not initialized for 3D bars. You cannot place new bar without proper initialization. Do it now?", "Yes", "No")) { MadInitTool.ShowWindow(); return; } panel = MadPanel.UniqueOrNull(); } var wizard = ScriptableWizard.DisplayWizard<FillRenderer3DTool>("Create Fill Renderer 3D", "Create"); wizard.panel = MadPanel.UniqueOrNull(); wizard.CheckValid(); }
// =========================================================== // Constants // =========================================================== // =========================================================== // Methods // =========================================================== public static EnergyBar3DBase Create3DBar(EnergyBar3DBase.BarType type) { var panel = MadPanel.UniqueOrNull(); if (panel == null) { EditorUtility.DisplayDialog("Not Initialized", "You have to initialize EBT first", "OK"); MadInitTool.ShowWindow(); return null; } else { switch (type) { case EnergyBar3DBase.BarType.Filled: return FillRenderer3DBuilder.Create(); case EnergyBar3DBase.BarType.Repeated: return RepeatRenderer3DBuilder.Create(); default: Debug.LogError("Unknown bar type: " + type); return null; } } }
static Transform ActiveParentOrPanel() { Transform parentTransform = null; var transforms = Selection.transforms; if (transforms.Length > 0) { var firstTransform = transforms[0]; if (MadTransform.FindParent<MadPanel>(firstTransform) != null) { parentTransform = firstTransform; } } if (parentTransform == null) { var panel = MadPanel.UniqueOrNull(); if (panel != null) { parentTransform = panel.transform; } } return parentTransform; }
// =========================================================== // Static Methods // =========================================================== public static RepeatedRenderer3D Create() { var panel = MadPanel.UniqueOrNull(); if (panel == null) { var panels = MadPanel.All(); if (panels.Length == 0) { if (EditorUtility.DisplayDialog( "Init Scene?", "Scene not initialized for 3D bars. You cannot place new bar without proper initialization. Do it now?", "Yes", "No")) { MadInitTool.ShowWindow(); } } else { CreateMeshBarTool.ShowWindow(EnergyBar3DBase.BarType.Repeated); } return null; } else { return Create(panel); } }
// =========================================================== // Static Methods // =========================================================== public static FilledRenderer3D Create() { var panel = MadPanel.UniqueOrNull(); if (panel == null) { if (EditorUtility.DisplayDialog( "Init Scene?", "Scene not initialized for 3D bars. You cannot place new bar without proper initialization. Do it now?", "Yes", "No")) { MadInitTool.ShowWindow(); return null; } panel = MadPanel.UniqueOrNull(); } var bar = MadTransform.CreateChild<FilledRenderer3D>(panel.transform, "fill progress bar"); TryApplyExampleTextures(bar); Selection.activeObject = bar.gameObject; return bar; }
private void ReconnectPanelIfNeeded(bool firstTime) { if (panel == null) { panel = MadPanel.FirstOrNull(transform); if (panel == null && firstTime) { Debug.LogError("You have to initialize scene first! Please execute Tools -> Energy Bar Toolkit -> Initialize"); } else { // check if now I am under the panel var topPanel = MadTransform.FindParent<MadPanel>(transform); bool nowUnderThePanel = topPanel == panel; // new scale should be applied if location of bar relative to panel has changed if (nowUnderThePanel && !underThePanel) { // now is under the panel, but wasn't before transform.localScale /= panel.transform.lossyScale.x; } else if (!nowUnderThePanel && underThePanel) { // was under the panel before, now it isn't transform.localScale *= panel.transform.lossyScale.x; } underThePanel = nowUnderThePanel; } } }