Пример #1
0
        public Node(UI ui, AnimationPattern ap)
        {
            this.ap = ap;
            this.ui = ui;

            connectButton    = ui.CreateButton("Connect", 100, 50);
            disconnectButton = ui.CreateButton("Disconnect All", 100, 50);
            disconnectButton.transform.SetParent(connectButton.transform);
            disconnectButton.transform.Translate(0, -0.08f, 0);

            UIDynamicButton playButton = ui.CreateButton("Play", 100, 50);

            playButton.transform.SetParent(connectButton.transform);
            playButton.transform.Translate(0, -0.16f, 0);

            playButton.button.onClick.AddListener(() =>
            {
                ap.SetBoolParamValue("on", true);

                if (ap.GetBoolParamValue("pause") == true)
                {
                    playButton.label = "Stop";
                    ap.ResetAnimation();
                }
                else
                {
                    playButton.label = "Play";
                    ap.SetBoolParamValue("on", false);
                }

                ap.TogglePause();
            });
        }
Пример #2
0
 public void Stop()
 {
     ap.Pause();
     ap.SetBoolParamValue("on", false);
 }
Пример #3
0
        Node CreateNode(AnimationPattern ap)
        {
            Node foundNode = nodes.Find((other) =>
            {
                return(other.ap == ap);
            });

            if (foundNode != null)
            {
                sc.SelectController(containingAtom.mainController);
                return(foundNode);
            }

            Node node = new Node(ui, ap);

            //ap.containingAtom.SetOn(false);
            ap.SetBoolParamValue("on", false);
            ap.Pause();
            ap.ResetAnimation();

            lineMaterial = ap.rootLineDrawerMaterial;

            if (nodes.Contains(node) == false)
            {
                nodes.Add(node);
            }

            node.connectButton.button.onClick.AddListener(() =>
            {
                sc.SelectModeAtom((atom) =>
                {
                    if (atom == ap.containingAtom)
                    {
                        SuperController.LogError("Can't make a connection to itself.");
                        return;
                    }
                    AnimationPattern childAP = atom.GetStorableByID("AnimationPattern") as AnimationPattern;
                    if (childAP == null)
                    {
                        SuperController.LogError("Only Animation Patterns can be selected.");
                        return;
                    }

                    Node childNode        = CreateNode(childAP);
                    Transition transition = CreateTransition(node.atom, childNode.atom);
                    if (transition != null)
                    {
                        node.transitions.Add(transition);
                        PerformSave();
                    }
                });
            });

            node.disconnectButton.button.onClick.AddListener(() =>
            {
                node.transitions.ForEach((t) =>
                {
                    t.OnDestroy();
                    transitions.Remove(t);
                });

                node.transitions.Clear();
            });

            sc.SelectController(containingAtom.mainController);

            return(node);
        }