/// <summary> /// Send messages to all scripts with IBehaviourListener to this animator /// </summary> void DeliverListener(MesssageItem m, IAnimatorListener listener) { switch (m.typeM) { case TypeMessage.Bool: listener.OnAnimatorBehaviourMessage(m.message, m.boolValue); break; case TypeMessage.Int: listener.OnAnimatorBehaviourMessage(m.message, m.intValue); break; case TypeMessage.Float: listener.OnAnimatorBehaviourMessage(m.message, m.floatValue); break; case TypeMessage.String: listener.OnAnimatorBehaviourMessage(m.message, m.stringValue); break; case TypeMessage.Void: listener.OnAnimatorBehaviourMessage(m.message, null); break; default: break; } }
public override void AddListener(IAnimatorListener listener) { var wrapper = new AnimatorListenerWrapper(this, listener); if (_listeners.ContainsKey(listener)) { _listeners.Add(listener, wrapper); _animator.AddListener(listener); } }
public override void RemoveListener(IAnimatorListener listener) { var wrapper = _listeners[listener]; if (wrapper is null) { return; } _listeners.Remove(wrapper); _animator.RemoveListener(wrapper); }
/// <summary> Send messages to all scripts with IBehaviourListener to this animator </summary> void DeliverListener(MesssageItem m, IAnimatorListener listener) { string val = ""; bool succesful = false; switch (m.typeM) { case TypeMessage.Bool: succesful = listener.OnAnimatorBehaviourMessage(m.message, m.boolValue); val = m.boolValue.ToString(); break; case TypeMessage.Int: succesful = listener.OnAnimatorBehaviourMessage(m.message, m.intValue); val = m.intValue.ToString(); break; case TypeMessage.Float: succesful = listener.OnAnimatorBehaviourMessage(m.message, m.floatValue); val = m.floatValue.ToString(); break; case TypeMessage.String: succesful = listener.OnAnimatorBehaviourMessage(m.message, m.stringValue); val = m.stringValue.ToString(); break; case TypeMessage.Void: succesful = listener.OnAnimatorBehaviourMessage(m.message, null); val = "Void"; break; case TypeMessage.IntVar: succesful = listener.OnAnimatorBehaviourMessage(m.message, (int)m.intVarValue); val = m.intVarValue.name.ToString(); break; case TypeMessage.Transform: succesful = listener.OnAnimatorBehaviourMessage(m.message, m.transformValue); val = m.transformValue.name.ToString(); break; default: break; } if (debug && succesful) { Debug.Log($"<b>[Msg: {m.message}->{val}] [{m.typeM}]</b> T:{Time.time:F3}"); //Debug } }
private void Deliver(MesssageItem m, Component component) { if (UseSendMessage) { DeliverMessage(m, component.transform.root); } else { IAnimatorListener liste = component.GetComponentInParent <IAnimatorListener>(); if (liste != null) { DeliverListener(m, liste); } } }
public static void DeliverListener(MesssageItem m, IAnimatorListener listener) { switch (m.typeM) { case TypeMessage.Bool: listener.OnAnimatorBehaviourMessage(m.message, m.boolValue); break; case TypeMessage.Int: listener.OnAnimatorBehaviourMessage(m.message, m.intValue); break; case TypeMessage.Float: listener.OnAnimatorBehaviourMessage(m.message, m.floatValue); break; case TypeMessage.String: listener.OnAnimatorBehaviourMessage(m.message, m.stringValue); break; case TypeMessage.Void: listener.OnAnimatorBehaviourMessage(m.message, null); break; case TypeMessage.IntVar: listener.OnAnimatorBehaviourMessage(m.message, (int)m.intVarValue); break; case TypeMessage.Transform: listener.OnAnimatorBehaviourMessage(m.message, m.transformValue); break; case TypeMessage.GameObject: listener.OnAnimatorBehaviourMessage(m.message, m.GoValue); break; case TypeMessage.Component: listener.OnAnimatorBehaviourMessage(m.message, m.ComponentValue); break; default: break; } }
public virtual void SendMessage(Component component) { foreach (var m in messages) { if (m.message == string.Empty || !m.Active) { break; //If the messaje is empty or disabled break.... ignore it } if (UseSendMessage) { DeliverMessage(m, component.transform.root); } else { IAnimatorListener liste = component.GetComponentInParent <IAnimatorListener>(); if (liste != null) { DeliverListener(m, liste); } } } }