public static bool AddMatchMethod(string source, Component calledComponent, string patterm, List <CallbackCallObject> callbackCallObjectList) { var match = Regex.Match(source, patterm); if (!match.Success) { return(false); } var method = match.Groups ["call"].ToString().Replace("\"", ""); CallbackCallObject item = callbackCallObjectList.Find((name) => { return(name.method.Equals(method)); }); if (item == null) { item = new CallbackCallObject(); item.method = method; callbackCallObjectList.Add(item); } if (!item.callComponent.Exists((comp) => { return(calledComponent.Equals(comp)); })) { item.callComponent.Add(calledComponent); } return(true); }
public static bool AddMatchMethod(string source, Component calledComponent, string patterm, List<CallbackCallObject> callbackCallObjectList) { var match = Regex.Match (source, patterm); if (! match.Success) return false; var method = match.Groups ["call"].ToString ().Replace ("\"", ""); CallbackCallObject item = callbackCallObjectList.Find ((name) => { return name.method.Equals (method); }); if (item == null) { item = new CallbackCallObject (); item.method = method; callbackCallObjectList.Add (item); } if (!item.callComponent.Exists ((comp) => { return calledComponent.Equals (comp); })) { item.callComponent.Add (calledComponent); } return true; }
void GetAnimationEvents(Animator animator) { if (animator == null) return; #if UNITY_5_0 var anim = (UnityEditor.Animations.AnimatorController)animator.runtimeAnimatorController; foreach( var clip in anim.animationClips ) { foreach( var ev in AnimationUtility.GetAnimationEvents(clip) ) { MethodWithObject item = methdoList.Find( (name) =>{ return name.method.Equals(ev.functionName) ; } ); if( item == null ){ item = new MethodWithObject(); item.method = ev.functionName; methdoList.Add(item); } if( !item.objectList.Exists( (obj)=>{ return animator.Equals(obj); } ) ) { item.objectList.Add(animator ); } } } #else var anim = (UnityEditorInternal.AnimatorController)animator.runtimeAnimatorController; if (anim == null) return; for (int i=0; i<anim.layerCount; i++) { var layer = anim.GetLayer (i); for (int r=0; r< layer.stateMachine.stateCount; r++) { var state = layer.stateMachine.GetState (r); var clip = state.GetMotion () as AnimationClip; if (clip == null) continue; foreach (var ev in AnimationUtility.GetAnimationEvents(clip)) { CallbackCallObject item = callbackCallObjectList.Find ((name) => { return name.method.Equals (ev.functionName); }); if (item == null) { item = new CallbackCallObject (); item.method = ev.functionName; callbackCallObjectList.Add (item); } if (!item.callComponent.Exists ((obj) => { return animator.Equals (obj); })) { item.callComponent.Add (animator); } } } } #endif }
void GetAnimationEvents(Animator animator) { if (animator == null) { return; } #if UNITY_5_0 var anim = (UnityEditor.Animations.AnimatorController)animator.runtimeAnimatorController; foreach (var clip in anim.animationClips) { foreach (var ev in AnimationUtility.GetAnimationEvents(clip)) { MethodWithObject item = methdoList.Find((name) => { return(name.method.Equals(ev.functionName)); }); if (item == null) { item = new MethodWithObject(); item.method = ev.functionName; methdoList.Add(item); } if (!item.objectList.Exists((obj) => { return(animator.Equals(obj)); })) { item.objectList.Add(animator); } } } #else var anim = (UnityEditorInternal.AnimatorController)animator.runtimeAnimatorController; if (anim == null) { return; } for (int i = 0; i < anim.layerCount; i++) { var layer = anim.GetLayer(i); for (int r = 0; r < layer.stateMachine.stateCount; r++) { var state = layer.stateMachine.GetState(r); var clip = state.GetMotion() as AnimationClip; if (clip == null) { continue; } foreach (var ev in AnimationUtility.GetAnimationEvents(clip)) { CallbackCallObject item = callbackCallObjectList.Find((name) => { return(name.method.Equals(ev.functionName)); }); if (item == null) { item = new CallbackCallObject(); item.method = ev.functionName; callbackCallObjectList.Add(item); } if (!item.callComponent.Exists((obj) => { return(animator.Equals(obj)); })) { item.callComponent.Add(animator); } } } } #endif }