UnityEditor.AnimationWindowEvent.InsertAnimationEvent C# (CSharp) Method

InsertAnimationEvent() private static method

private static InsertAnimationEvent ( AnimationEvent &events, AnimationClip clip, AnimationEvent evt ) : int
events UnityEngine.AnimationEvent
clip UnityEngine.AnimationClip
evt UnityEngine.AnimationEvent
return int
        private static int InsertAnimationEvent(ref AnimationEvent[] events, AnimationClip clip, AnimationEvent evt)
        {
            Undo.RegisterCompleteObjectUndo(clip, "Add Event");
            int length = events.Length;
            for (int i = 0; i < events.Length; i++)
            {
                if (events[i].time > evt.time)
                {
                    length = i;
                    break;
                }
            }
            ArrayUtility.Insert<AnimationEvent>(ref events, length, evt);
            AnimationUtility.SetAnimationEvents(clip, events);
            events = AnimationUtility.GetAnimationEvents(clip);
            if ((events[length].time != evt.time) || (events[length].functionName != events[length].functionName))
            {
                Debug.LogError("Failed insertion");
            }
            return length;
        }
    }

Usage Example

コード例 #1
0
        public static AnimationWindowEvent CreateAndEdit(GameObject root, AnimationClip clip, float time)
        {
            AnimationEvent animationEvent = new AnimationEvent();

            animationEvent.time = time;
            AnimationEvent[] animationEvents = AnimationUtility.GetAnimationEvents(clip);
            int num = AnimationWindowEvent.InsertAnimationEvent(ref animationEvents, clip, animationEvent);
            AnimationWindowEvent animationWindowEvent = ScriptableObject.CreateInstance <AnimationWindowEvent>();

            animationWindowEvent.hideFlags  = HideFlags.HideInHierarchy;
            animationWindowEvent.name       = "Animation Event";
            animationWindowEvent.root       = root;
            animationWindowEvent.clip       = clip;
            animationWindowEvent.clipInfo   = null;
            animationWindowEvent.eventIndex = num;
            return(animationWindowEvent);
        }