int BuildTextures(Tex[] textures, string prefix, int startDepth, ref List<MadSprite> sprites) { int counter = 0; foreach (var texture in textures) { if (texture.texture == null) { continue; } string name = string.Format("{0}{1:D2}", prefix, counter + 1); var sprite = MadTransform.CreateChild<MadSprite>(transform, name); #if !MAD_DEBUG sprite.gameObject.hideFlags = HideFlags.HideInHierarchy; #endif sprite.guiDepth = startDepth + counter; sprite.texture = texture.texture; sprite.tint = texture.color; sprites.Add(sprite); counter++; } return startDepth + counter; }
public static RepeatedRenderer3D Create(MadPanel panel) { var bar = MadTransform.CreateChild<RepeatedRenderer3D>(panel.transform, "repeat progress bar"); TryApplyExampleTextures(bar); Selection.activeObject = bar.gameObject; return bar; }
protected T CreateChild<T>(string childName, Transform parent) where T : Component { var child = MadTransform.CreateChild<T>(parent, "generated_" + childName); createdChildren.Add(child.gameObject); SetAsLastGenerated(child.transform); ApplyDebugMode(child.gameObject, debugMode); return child; }
protected void CreateAnchor() { MadUndo.LegacyRegisterSceneUndo("Create Anchor"); if (IsAnchored()) { EditorUtility.DisplayDialog("Anchor already exists", "Your bar object is already under the anchor", "Fine"); return; } var anchor = MadTransform.CreateChild <MadAnchor>(energyBarBase.transform.parent, "Anchor"); energyBarBase.transform.parent = anchor.transform; Selection.activeObject = energyBarBase.gameObject; }
protected int RebuildLabel(int depth) { if (labelSprite != null) { MadGameObject.SafeDestroy(labelSprite.gameObject); } if (labelEnabled && labelFont != null) { labelSprite = MadTransform.CreateChild<MadText>(transform, "label"); labelSprite.font = labelFont; labelSprite.guiDepth = depth++; #if !MAD_DEBUG labelSprite.gameObject.hideFlags = HideFlags.HideInHierarchy; #endif } // after build we must update label at least once to make it visible UpdateLabel(); return depth; }
// =========================================================== // 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; }
protected T CreateHidden<T>(string name, Transform parent = null) where T : Component { if (container == null) { // create container container = new GameObject("_container").transform; #if !MAD_DEBUG container.gameObject.hideFlags = HideFlags.HideAndDontSave; #else container.gameObject.hideFlags = HideFlags.DontSave; #endif } if (parent == null) { parent = container; } var obj = MadTransform.CreateChild<T>(parent, name, true); // if created object is mad sprite, then assign the panel if (obj is MadSprite) { var sprite = obj as MadSprite; sprite.panel = panel; if (obj.GetType() == typeof(MadSprite)) { sprite.hasPremultipliedAlpha = premultipliedAlpha; } } MadGameObject.SetActive(obj.gameObject, true); #if !MAD_DEBUG obj.gameObject.hideFlags = HideFlags.HideAndDontSave; #else obj.gameObject.hideFlags = HideFlags.DontSave; #endif hiddenObjects.Insert(0, obj.gameObject); return obj; }
int BuildTextures(int depth) { for (int i = 0; i < repeatCount; ++i) { // creating slot if (textureSlot != null) { string name = string.Format("slot_{0:D2}", i + 1); var sprite = MadTransform.CreateChild<MadSprite>(transform, name); sprite.texture = textureSlot; sprite.transform.localPosition = repeatPositionDelta * i; sprite.transform.localPosition += (Vector3) LocalIconOffset(sprite.size); sprite.guiDepth = depth++; #if !MAD_DEBUG sprite.gameObject.hideFlags = HideFlags.HideInHierarchy; #endif slotSprites.Add(sprite); } // creating icon if (textureIcon != null) { string name = string.Format("icon_{0:D2}", i + 1); var sprite = MadTransform.CreateChild<MadSprite>(transform, name); sprite.texture = textureIcon; sprite.transform.localPosition = repeatPositionDelta * i; sprite.transform.localPosition += (Vector3) LocalIconOffset(sprite.size); sprite.guiDepth = depth++; #if !MAD_DEBUG sprite.gameObject.hideFlags = HideFlags.HideInHierarchy; #endif iconSprites.Add(sprite); } } return depth; }
void Rebuild() { #if MAD_DEBUG Debug.Log("rebuilding " + this, this); #endif if (spriteObjectsBg.Count == 0 && spriteObjectsFg.Count == 0) { // in previous version sprites were created without reference in spriteObjects // is spriteObjects is empty it's better to assume, that references are not created yet // and background objects may exist var children = MadTransform.FindChildren<MadSprite>(transform, (s) => s.name.StartsWith("bg_") || s.name.StartsWith("fg_") || s.name == "label", 0); foreach (var child in children) { MadGameObject.SafeDestroy(child.gameObject); } } else { foreach (var sprite in spriteObjectsBg) { if (sprite != null) { MadGameObject.SafeDestroy(sprite.gameObject); } } foreach (var sprite in spriteObjectsFg) { if (sprite != null) { MadGameObject.SafeDestroy(sprite.gameObject); } } spriteObjectsBg.Clear(); spriteObjectsFg.Clear(); } if (spriteBar != null) { MadGameObject.SafeDestroy(spriteBar.gameObject); } if (spriteBurnBar != null) { MadGameObject.SafeDestroy(spriteBurnBar.gameObject); } if (effectFollowSprite != null) { MadGameObject.SafeDestroy(effectFollowSprite.gameObject); } int nextDepth = BuildTextures(texturesBackground, "bg_", guiDepth * DepthSpace, ref spriteObjectsBg); if (textureBar != null) { if (effectBurn) { spriteBurnBar = MadTransform.CreateChild<MadSprite>(transform, "bar_effect_burn"); #if !MAD_DEBUG spriteBurnBar.gameObject.hideFlags = HideFlags.HideInHierarchy; #endif spriteBurnBar.guiDepth = nextDepth++; spriteBurnBar.texture = textureBar; spriteBurnBar.fillType = ToFillType(growDirection); } spriteBar = MadTransform.CreateChild<MadSprite>(transform, "bar"); #if !MAD_DEBUG spriteBar.gameObject.hideFlags = HideFlags.HideInHierarchy; #endif spriteBar.guiDepth = nextDepth++; spriteBar.texture = textureBar; spriteBar.fillType = ToFillType(growDirection); } nextDepth = BuildTextures(texturesForeground, "fg_", nextDepth, ref spriteObjectsFg); if (effectFollow) { if (effectFollowObject != null && effectFollowObject is Texture2D) { effectFollowSprite = MadTransform.CreateChild<MadSprite>(transform, "bar_effect_follow"); effectFollowSprite.texture = effectFollowObject as Texture2D; effectFollowSprite.guiDepth = nextDepth++; #if !MAD_DEBUG effectFollowSprite.gameObject.hideFlags = HideFlags.HideInHierarchy; #endif } } nextDepth = RebuildLabel(nextDepth); }
static T Create<T>(string name) where T : Component { var parent = Selection.activeTransform; var component = MadTransform.CreateChild<T>(parent, name); Selection.activeObject = component.gameObject; return component; }
static void CreateAnchor() { var anchor = MadTransform.CreateChild<MadAnchor>(ActiveParentOrPanel(), "Anchor"); Selection.activeGameObject = anchor.gameObject; }
static void CreateText() { var text = MadTransform.CreateChild<MadText>(ActiveParentOrPanel(), "text"); Selection.activeGameObject = text.gameObject; }
static void CreateSprite() { var sprite = MadTransform.CreateChild<MadSprite>(ActiveParentOrPanel(), "sprite"); Selection.activeGameObject = sprite.gameObject; }