Ejemplo n.º 1
0
 public AnimationTriggerNode(string triggerName, AnimationTriggerNode parent)
 {
     m_triggerName = triggerName;
     m_parent      = parent;
     m_childs      = new List <AnimationTriggerNode>();
     m_isActived   = false;
 }
Ejemplo n.º 2
0
 public AnimationTriggerManager(Animator animator, string root)
 {
     m_triggers       = new Dictionary <string, AnimationTriggerNode>();
     m_animator       = animator;
     m_root           = new AnimationTriggerNode(root);
     m_triggers[root] = m_root;
 }
Ejemplo n.º 3
0
 public void OnTrigger(string trigger)
 {
     if (m_root == null)
     {
         return;
     }
     if (m_triggers.ContainsKey(trigger))
     {
         //触发器链
         //不触发root节点的Trigger,触发就返回root了
         AnimationTriggerNode node = m_triggers[trigger];
         if (node == m_root)
         {
             m_animator.SetTrigger(node.triggerName);
             node.isActived = true;
             return;
         }
         while (node != null && node != root)
         {
             m_animator.SetTrigger(node.triggerName);
             node.isActived = true;
             node           = node.Parent;
         }
     }
 }
Ejemplo n.º 4
0
    public AnimationTriggerNode CreateAnimationTriggerNode(string trigger, string target, Vector2 mousePosition)
    {
        var animationTriggerNode = new AnimationTriggerNode
        {
            title        = "AnimationTriggerNode",
            TriggerName  = trigger,
            TargetPlayer = target,
            GUID         = Guid.NewGuid().ToString()
        };

        var inputPort = GeneratePort(animationTriggerNode, Direction.Input, Port.Capacity.Multi);

        inputPort.portName = "Input";
        animationTriggerNode.inputContainer.Add(inputPort);

        var generatedPort = GeneratePort(animationTriggerNode, Direction.Output);

        generatedPort.portName = "Next";
        generatedPort.name     = "Next";
        animationTriggerNode.outputContainer.Add(generatedPort);

        animationTriggerNode.styleSheets.Add(Resources.Load <StyleSheet>("FlagNode"));

        var textFieldTarget = new TextField
        {
            name  = "Target",
            value = target,
            label = "Target\n"
        };

        textFieldTarget.RegisterValueChangedCallback(evt =>
        {
            animationTriggerNode.TargetPlayer = evt.newValue;
        });
        animationTriggerNode.mainContainer.Add(textFieldTarget);

        var textField = new TextField
        {
            name  = "Trigger",
            value = trigger,
            label = "Trigger\n"
        };

        textField.RegisterValueChangedCallback(evt =>
        {
            animationTriggerNode.TriggerName = evt.newValue;
            //dialogueNode.title = evt.newValue;
        });
        //textField.SetValueWithoutNotify(dialogueNode.title);
        animationTriggerNode.mainContainer.Add(textField);

        animationTriggerNode.RefreshExpandedState();
        animationTriggerNode.RefreshPorts();
        animationTriggerNode.SetPosition(new Rect(mousePosition, defaultNodeSize));

        return(animationTriggerNode);
    }
Ejemplo n.º 5
0
    public bool GetTriggerState(string tname)
    {
        AnimationTriggerNode node = m_triggerMgr.GetTrigger(tname);

        if (node != null)
        {
            return(node.isActived);
        }
        return(false);
    }
Ejemplo n.º 6
0
 public void Remove(string trigger)
 {
     if (m_triggers.ContainsKey(trigger))
     {
         AnimationTriggerNode node = m_triggers[trigger];
         if (node != null)
         {
             node.Parent.Childs.Remove(node);
             for (int i = 0; i < node.Childs.Count; i++)
             {
                 node.Childs[i].Parent = node.Parent;
             }
             m_triggers.Remove(trigger);
         }
     }
 }
Ejemplo n.º 7
0
    public void  Add(string trigger, string parentTrigger)
    {
        if (m_triggers.ContainsKey(trigger))
        {
            return;
        }
        AnimationTriggerNode node = new AnimationTriggerNode(trigger);

        if (m_triggers.ContainsKey(parentTrigger))
        {
            AnimationTriggerNode parent = m_triggers[parentTrigger];
            if (parent != null)
            {
                node.Parent         = parent;
                m_triggers[trigger] = node;
                return;
            }
        }
        node.Parent         = m_root;
        m_triggers[trigger] = node;
    }
Ejemplo n.º 8
0
 public void Clear()
 {
     m_root = null;
     m_triggers.Clear();
 }