記錄環(huán)境
- Unity 2020.3.2f1
- Timeline 1.4.6
代碼部分
1、 ExposedReference<T> where T : Object
??在ScriptableObject或PlayableAsset中引用對象時,默認(rèn)只能引用Project里的資源。通過ExposedReference包裝后,可以引用Scene里的對象或TML Prefab里的子節(jié)點。例:ExposedReference<GameObject>
2、 PlayableDirector.stopped 在 PlayableBehaviour.OnBehaviourPause 跟 PlayableBehaviour.OnGraphStop 之前調(diào)用,PlayableBehaviour.OnPlayableDestroy 在更后面
??這個設(shè)計導(dǎo)致一個問題:TML調(diào)用方要在播放結(jié)束后做一些事情,如果這些事跟某個OnGraphStop、OnPlayableDestroy里的清理一致,則會被覆蓋。
??例:TML某軌道會移動坐標(biāo),并在OnPlayableDestroy里還原;調(diào)用方要在TML播放結(jié)束后,將其移動到另一個位置。那么回調(diào)里的邏輯會被覆蓋失效。
3、用PlayableGraph播放Animator,主動執(zhí)行Evaluate不生效
??Animator自身的更新執(zhí)行的時機比較晚,所以在Update里或者TML的ProcessFrame里調(diào)用PlayableGraph.Evaluate后,執(zhí)行結(jié)果會被Animator的自動更新給覆蓋掉。
解決方法
-
PlayableGraph.Evaluate放在LateUpdate里執(zhí)行 - 將Animator自身的PlayableGraph停掉:
animator.playableGraph.Stop()