fix(timeline-kit): 修复 Timeline 重复播放无法从头开始
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
using System;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using Cinemachine;
|
||||
using UnityEngine;
|
||||
@@ -217,16 +217,14 @@ namespace AibisDream
|
||||
return;
|
||||
}
|
||||
|
||||
// 先停止再播放
|
||||
// 先停止、回到起点再播放(保证同一 Timeline 可重复从头播放)
|
||||
CancelPendingResetToStartCoroutine();
|
||||
director.stopped -= OnDirectorStopped;
|
||||
if (director.state == PlayState.Playing)
|
||||
{
|
||||
director.Stop();
|
||||
}
|
||||
|
||||
director.Stop();
|
||||
ApplyPlaybackTimeZero();
|
||||
|
||||
_onCompleteCallback = onComplete;
|
||||
|
||||
|
||||
if (ShouldSubscribeStopped(onComplete))
|
||||
{
|
||||
director.stopped += OnDirectorStopped;
|
||||
@@ -235,6 +233,7 @@ namespace AibisDream
|
||||
// 自动绑定 CinemachineBrain
|
||||
AutoBindCinemachineBrain();
|
||||
|
||||
Debug.Log($"DirectorHandler {timelineName}: Play");
|
||||
director.Play();
|
||||
}
|
||||
|
||||
@@ -251,10 +250,8 @@ namespace AibisDream
|
||||
|
||||
CancelPendingResetToStartCoroutine();
|
||||
director.stopped -= OnDirectorStopped;
|
||||
if (director.state == PlayState.Playing)
|
||||
{
|
||||
director.Stop();
|
||||
}
|
||||
director.Stop();
|
||||
ApplyPlaybackTimeZero();
|
||||
|
||||
if (ShouldSubscribeStopped(null))
|
||||
{
|
||||
@@ -264,6 +261,7 @@ namespace AibisDream
|
||||
// 自动绑定 CinemachineBrain
|
||||
AutoBindCinemachineBrain();
|
||||
|
||||
Debug.Log($"DirectorHandler {timelineName}: Play");
|
||||
director.Play();
|
||||
|
||||
// 等待播放完成
|
||||
@@ -329,10 +327,7 @@ namespace AibisDream
|
||||
|
||||
CancelPendingResetToStartCoroutine();
|
||||
director.stopped -= OnDirectorStopped;
|
||||
if (director.state == PlayState.Playing)
|
||||
{
|
||||
director.Stop();
|
||||
}
|
||||
director.Stop();
|
||||
|
||||
_savedPlayableAsset = director.playableAsset;
|
||||
director.playableAsset = loadedAsset;
|
||||
@@ -341,7 +336,9 @@ namespace AibisDream
|
||||
|
||||
// 自动绑定 CinemachineBrain(必须在 RebuildGraph 之后)
|
||||
AutoBindCinemachineBrain();
|
||||
|
||||
|
||||
ApplyPlaybackTimeZero();
|
||||
|
||||
_addressableHandle = loadedHandle;
|
||||
|
||||
_onCompleteCallback = onComplete;
|
||||
|
||||
Reference in New Issue
Block a user