コード例 #1
0
        private void AddNewSoundState(JTimelineSound line, JSoundTrack track, float time, string stateName, AudioClip clip)
        {
            controlID = GUIUtility.GetControlID(track.GetInstanceID(), FocusType.Passive);

            var clipData = ScriptableObject.CreateInstance <JSoundClipData>();

            clipData.TargetObject = line.AffectedObject.gameObject;
            clipData.StartTime    = time;
            if (clip == null)
            {
                if (line.OrientationClip != null)
                {
                    clipData.Clip = line.OrientationClip;
                }
            }
            else
            {
                clipData.Clip = clip;
            }

            if (clipData.Clip == null)
            {
                SequenceWindow.ShowNotification(new GUIContent("AudioClip is NULL"));
            }
            if (clipData.Clip != null)
            {
                clipData.SoundDuration    = clipData.Clip.length;
                clipData.PlaybackDuration = clipData.SoundDuration;
                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);
            }
        }