public override void OnInspectorGUI() { SpeechTrack _target = (SpeechTrack)target; _target.ShowGUI(); if (GUI.changed) { EditorUtility.SetDirty(_target); } }
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 }