Example #1
0
        public override void OnInspectorGUI()
        {
            SpeechTrack _target = (SpeechTrack)target;

            _target.ShowGUI();

            if (GUI.changed)
            {
                EditorUtility.SetDirty(_target);
            }
        }
Example #2
0
        protected void PrepareDirector()
        {
                        #if !ACIgnoreTimeline
            if (newTimeline != null)
            {
                if (runtimeDirector.playableAsset != null && runtimeDirector.playableAsset is TimelineAsset)
                {
                    TimelineAsset oldTimeline      = (TimelineAsset)runtimeDirector.playableAsset;
                    GameObject[]  transferBindings = new GameObject[oldTimeline.outputTrackCount];
                    for (int i = 0; i < transferBindings.Length; i++)
                    {
                        TrackAsset trackAsset = oldTimeline.GetOutputTrack(i);
                        transferBindings[i] = runtimeDirector.GetGenericBinding(trackAsset) as GameObject;
                    }

                    runtimeDirector.playableAsset = newTimeline;

                    for (int i = 0; i < transferBindings.Length; i++)
                    {
                        if (transferBindings[i] != null)
                        {
                            var track = newTimeline.GetOutputTrack(i);
                            if (track != null)
                            {
                                runtimeDirector.SetGenericBinding(track, transferBindings[i].gameObject);
                            }
                        }
                    }
                }
                else
                {
                    runtimeDirector.playableAsset = newTimeline;
                }
            }

            TimelineAsset timelineAsset = runtimeDirector.playableAsset as TimelineAsset;
            if (timelineAsset != null)
            {
                for (int i = 0; i < timelineAsset.outputTrackCount; i++)
                {
                    TrackAsset trackAsset = timelineAsset.GetOutputTrack(i);

                    if (updateBindings && newBindings != null && i < newBindings.Length && newBindings[i] != null)
                    {
                        if (trackAsset != null && newBindings[i].gameObject != null)
                        {
                            SpeechTrack speechTrackAsset = trackAsset as SpeechTrack;
                            if (speechTrackAsset != null)
                            {
                                speechTrackAsset.isPlayerLine  = newBindings[i].isPlayer;
                                speechTrackAsset.playerID      = newBindings[i].playerID;
                                speechTrackAsset.speakerObject = newBindings[i].gameObject;
                            }
                            else
                            {
                                runtimeDirector.SetGenericBinding(trackAsset, newBindings[i].gameObject);
                            }
                        }
                    }

                    GameObject bindingObject = runtimeDirector.GetGenericBinding(trackAsset) as GameObject;
                    if (bindingObject == null)
                    {
                        Animator bindingAnimator = runtimeDirector.GetGenericBinding(trackAsset) as Animator;
                        if (bindingAnimator != null)
                        {
                            bindingObject = bindingAnimator.gameObject;
                        }
                    }

                    if (bindingObject != null)
                    {
                        Char bindingObjectChar = bindingObject.GetComponent <Char>();
                        if (bindingObjectChar != null)
                        {
                            bindingObjectChar.OnEnterTimeline(runtimeDirector, i);
                        }
                    }
                }
            }
                        #endif
        }