IEnumerator CreateWorldButtonCO(string buttonLabel, UnityEngine.Events.UnityAction call, int index) { Atom containingAtom = GetContainingAtom(); string name = containingAtom.uid; string uid = name + " " + buttonLabel; Atom atom = SuperController.singleton.GetAtomByUid(uid); if (atom == null) { yield return(SuperController.singleton.AddAtomByType("UIButton", uid)); } else { Debug.Log("button already exists"); if (buttons == null) { buttons = new List <Atom>(); } buttons.Add(atom); yield return(null); } atom = SuperController.singleton.GetAtomByUid(uid); atom.GetStorableByID("Text").SetStringParamValue("text", buttonLabel); UIButtonTrigger ubt = atom.GetStorableByID("Trigger") as UIButtonTrigger; ubt.button.onClick.AddListener(call); atom.GetStorableByID("Canvas").SetFloatParamValue("xSize", 500); atom.GetStorableByID("Canvas").SetFloatParamValue("ySize", 100); HSVColor black = new HSVColor(); black.H = 0; black.S = 0; black.V = .12f; HSVColor gray = new HSVColor(); gray.H = 0; gray.S = 0; gray.V = 0.75f; atom.GetStorableByID("ButtonColor").SetColorParamValue("color", black); atom.GetStorableByID("TextColor").SetColorParamValue("color", gray); atom.GetStorableByID("Text").SetFloatParamValue("fontSize", 50); FreeControllerV3 controller = atom.GetStorableByID("control") as FreeControllerV3; controller.deselectedMeshScale = 0.000f; SphereCollider collider = controller.GetComponent <SphereCollider>(); collider.radius = 0.0f; collider.enabled = false; atom.SetOn(false); buttons.Add(atom); }
private IEnumerator GenerateButton(string label, string branchName, int index) { string atomId = Guid.NewGuid().ToString(); yield return(SuperController.singleton.AddAtomByType("UIButton", atomId)); Atom atom = SuperController.singleton.GetAtomByUid(atomId); buttons.Add(atom); atom.GetStorableByID("Text").SetStringParamValue("text", label); atom.mainController.transform.SetPositionAndRotation(parentAtom.mainController.transform.position, parentAtom.mainController.transform.rotation); atom.SetParentAtom(parentAtom.uid); atom.mainController.transform.Translate(0, index * DISTANCE_BETWEEN_BUTTONS, 0); UIButtonTrigger ubt = atom.GetStorableByID("Trigger") as UIButtonTrigger; ubt.button.onClick.AddListener(() => { if (onBranchSelected != null) { onBranchSelected.Invoke(branchName, this); } }); atom.mainController.canGrabPosition = false; atom.mainController.canGrabRotation = false; }