Exemple #1
0
        //添加动作片段
        private void AddNewAnimationState(JTimelineAnimation line, JAnimationTrack track, float time, string stateName)
        {
            var clipData = ScriptableObject.CreateInstance <JAnimationClipData>();

            clipData.TargetObject     = line.AffectedObject.gameObject;
            clipData.StartTime        = time;
            clipData.StateName        = stateName;
            clipData.StateDuration    = MecanimAnimationUtility.GetStateDuration(stateName, line.AffectedObject.gameObject);
            clipData.PlaybackDuration = clipData.StateDuration;
            clipData.Track            = track;
            track.AddClip(clipData);
            if (timelineClipRenderDataMap.ContainsKey(track))
            {
                var cachedData = ScriptableObject.CreateInstance <JClipRenderData>();
                cachedData.ClipData = clipData;
                timelineClipRenderDataMap[track].Add(cachedData);
            }
            else
            {
                var cachedData = ScriptableObject.CreateInstance <JClipRenderData>();
                cachedData.ClipData = clipData;
                List <JClipRenderData> list = new List <JClipRenderData>();
                list.Add(cachedData);
                timelineClipRenderDataMap.Add(track, list);
            }
        }
        public void AddClipWithState(string stateName, float startTime)
        {
            var clipData = ScriptableObject.CreateInstance <JAnimationClipData>();

            clipData.TargetObject     = TimeLine.AffectedObject.gameObject;
            clipData.StartTime        = startTime;
            clipData.StateName        = stateName;
            clipData.StateDuration    = MecanimAnimationUtility.GetStateDuration(stateName, TimeLine.AffectedObject.gameObject);
            clipData.PlaybackDuration = clipData.StateDuration;
            clipData.Track            = this;
            AddClip(clipData);
        }