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);
        }
Beispiel #2
0
        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;
        }