public void Add(UIObject newObj, UIDir dir) { Vector2 rel = Vector2.zero; if (list.Size() > 0) { UIObject last = list.Last(); switch (dir) { case UIDir.W: rel = last.GetRelative() + new Vector2(last.GetWidth(), 0); break; case UIDir.S: rel = new Vector2(origin.x, last.GetRelative().y - last.GetHeight()); break; default: UT.assert(false, "button: invalid direction"); break; } } UT.print("REL: " + rel); newObj.SetRelative(rel); list.AddLast(newObj); UpdateBounds(); UT.print("New bounds: " + bounds); }
private static void InitializeNewObject(Transform parent, int siblingIndex, UIContainer container, UIObject obj, UIDir dir) { GameObject item = obj.gameObject; item.SetActive(true); item.transform.SetParent(parent); item.transform.SetSiblingIndex(siblingIndex); item.transform.localScale = new Vector3(1, 1, 1); //UT.print("Init. size: " + obj.GetWidth() + ", " + obj.GetHeight()); container.Add(obj, dir); // add new item after previous to 'dir' direction. if (container.anchor == UIAlign.CENTER) { Vector2 offset = new Vector2(-container.GetWidth() / 2f, container.GetHeight() / 2f); container.SetScreenPosition(getScreenPosition(0, 0) + offset); } else if (container.anchor == UIAlign.TOP_LEFT) { container.SetScreenPosition(getScreenPosition(-.5f, .5f)); } else if (container.anchor == UIAlign.LEFT) { container.SetScreenPosition(getScreenPosition(-.5f, 0f)); } else if (container.anchor == UIAlign.BOTTOM_LEFT) { Vector2 offset = new Vector2(0f, container.GetHeight()); container.SetScreenPosition(getScreenPosition(-.5f, -.5f) + offset); } else { UT.trap("AMenu.InitializeButton: invalid orientation."); } }
public void AddObject(UIObject newObject, UIDir dir) { InitializeNewObject(transform, FrontBlocker.transform.GetSiblingIndex(), main, newObject, dir); }