This commit is contained in:
2025-06-03 21:50:35 +08:00
parent 5bd103ceec
commit c8b0f8b375
46 changed files with 6296 additions and 1914 deletions
+50 -40
View File
@@ -20,6 +20,7 @@ namespace AibisDream
public SpriteDeepIn deepIn;
public LightRoom lightRoom;
public GameObject screen;
public GameObject breakGlass;
private bool isCuttingMode = false;
private void Awake()
@@ -28,6 +29,8 @@ namespace AibisDream
FixSystemCenter.SystemDic.Register(this);
var virtualCam = transform.Find("Op Camera").GetComponent<ICinemachineCamera>();
CameraKit.Instance.RegisterCamera(CameraEnum.Op, virtualCam);
var breakCam = transform.Find("Break Camera").GetComponent<ICinemachineCamera>();
CameraKit.Instance.RegisterCamera(CameraEnum.BreakCamera, breakCam);
}
public void Update()
@@ -135,49 +138,56 @@ namespace AibisDream
Debug.LogError($"找不到Timeline资源: {timelinePath}");
yield break;
}
// 创建临时PlayableDirector
var director = gameObject.AddComponent<PlayableDirector>();
director.playableAsset = timelineAsset;
// 处理绑定
if (bindings != null)
{
foreach (var track in timelineAsset.GetOutputTracks())
{
// 尝试从bindings中找到匹配的绑定
if (bindings.TryGetValue(track.name, out var binding))
{
director.SetGenericBinding(track, binding);
}
// 特殊处理DialogController
else if (track is SignalTrack || track.name.Contains("Dialog"))
{
director.SetGenericBinding(track, DialogController.Instance);
}
// 尝试在场景中查找同名物体
else
{
var targetObj = GameObject.Find(track.name);
if (targetObj != null)
{
director.SetGenericBinding(track, targetObj);
}
}
}
}
// 播放Timeline
director.Play();
// 等待Timeline播放完成
while (director.state == PlayState.Playing)
OpenPlayable.playableAsset = timelineAsset;
OpenPlayable.Play();
while (OpenPlayable.state == PlayState.Playing)
{
yield return null;
}
// 清理
Destroy(director);
// // 创建临时PlayableDirector
// var director = gameObject.AddComponent<PlayableDirector>();
// director.playableAsset = timelineAsset;
// // 处理绑定
// if (bindings != null)
// {
// foreach (var track in timelineAsset.GetOutputTracks())
// {
// // 尝试从bindings中找到匹配的绑定
// if (bindings.TryGetValue(track.name, out var binding))
// {
// director.SetGenericBinding(track, binding);
// }
// // 特殊处理DialogController
// else if (track is SignalTrack || track.name.Contains("Dialog"))
// {
// director.SetGenericBinding(track, DialogController.Instance);
// }
// // 尝试在场景中查找同名物体
// else
// {
// var targetObj = GameObject.Find(track.name);
// if (targetObj != null)
// {
// director.SetGenericBinding(track, targetObj);
// }
// }
// }
// }
// // 播放Timeline
// director.Play();
// // 等待Timeline播放完成
// while (director.state == PlayState.Playing)
// {
// yield return null;
// }
// // 清理
// Destroy(director);
}
}
@@ -211,7 +221,7 @@ namespace AibisDream
// }
}
[YarnCommand("play_timeline")]
[YarnCommand("Open_play_timeline")]
public static IEnumerator PlayTimeline(string timelinePath)
{
yield return OpenSystem.PlayTimeline(timelinePath);