提交
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user