refactor: 移除废弃的 TimelineManager 和 MonoCenter

This commit is contained in:
2026-03-09 20:54:59 +08:00
parent f932390dc8
commit d164e4db00
5 changed files with 0 additions and 221 deletions
@@ -1,58 +0,0 @@
using System;
using UnityEngine;
namespace AibisDream.Framework
{
public class MonoCenter : MonoBehaviour
{
public static event Action OnUpdate;
public static MonoCenter Mono;
private static IOCContainer _iocContainer;
private void Awake()
{
if (Mono)
Destroy(Mono.gameObject);
else Mono = this;
InitKits();
}
private void InitKits()
{
_iocContainer ??= new IOCContainer();
// 在这里添加相应的工具
Register(new TransTest());
}
private void Register<T>(T kit) where T : IMonoKit
{
_iocContainer.Register(kit);
OnUpdate += kit.OnUpdate;
}
private void Unregister<T>() where T : class, IMonoKit
{
var kit = _iocContainer.Unregister<T>();
OnUpdate -= kit.OnUpdate;
}
private void Update()
{
OnUpdate?.Invoke();
}
}
public class TransTest : IMonoKit
{
public void OnUpdate()
{
}
}
public interface IMonoKit
{
void OnUpdate();
}
}
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: 93f180e6eb06c9f40a52e2bba277fc6e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 81a3c7f5c3edcc94e83bef49a64c7183
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
@@ -1,133 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
public class TimelineManager : MonoBehaviour
{
public static TimelineManager Instance { get; private set; }
// 使用字典来管理多个PlayableDirector
private Dictionary<string, PlayableDirector> directors = new Dictionary<string, PlayableDirector>();
private void Awake()
{
if (Instance == null)
{
Instance = this;
DontDestroyOnLoad(gameObject); // 不销毁
}
else
{
Destroy(gameObject);
return;
}
// 自动注册所有子对象中的PlayableDirector
RegisterAllDirectors();
}
/// <summary>
/// 自动注册所有子对象中的PlayableDirector
/// </summary>
private void RegisterAllDirectors()
{
var allDirectors = GetComponentsInChildren<PlayableDirector>();
foreach (var director in allDirectors)
{
if (director.playableAsset != null)
{
RegisterDirector(director.playableAsset.name, director);
}
}
}
/// <summary>
/// 注册PlayableDirector
/// </summary>
/// <param name="name">Timeline的名称</param>
/// <param name="director">PlayableDirector实例</param>
public void RegisterDirector(string name, PlayableDirector director)
{
if (!directors.ContainsKey(name))
{
directors.Add(name, director);
Debug.Log($"Registered PlayableDirector for {name}");
}
}
/// <summary>
/// 播放指定的Timeline并等待其完成
/// </summary>
/// <param name="name">Timeline的名称</param>
// [YarnCommand("play_timeline")]
public IEnumerator PlayTimeline(string name)
{
if (directors.TryGetValue(name, out var director))
{
director.Play();
Debug.Log($"Timeline {name} playing.");
// 等待Timeline播放完成
bool isPlaying = true;
director.stopped += (PlayableDirector aDirector) => { isPlaying = false; };
while (isPlaying)
{
yield return null;
}
Debug.Log($"Timeline {name} finished.");
director.Stop();
// 启动重置时间的协程,但不等待其完成
StartCoroutine(ResetDirectorTimeCoroutine(name));
}
else
{
Debug.LogError($"PlayableDirector for {name} not found.");
}
}
private IEnumerator ResetDirectorTimeCoroutine(string name)
{
yield return new WaitForSeconds(2f);
ResetDirectorTime(name);
}
/// <summary>
/// 重置PlayableDirector的时间
/// </summary>
/// <param name="name">Timeline的名称</param>
public void ResetDirectorTime(string name)
{
if (directors.TryGetValue(name, out var director))
{
director.time = 0;
director.Evaluate(); // 评估以应用时间重置
Debug.Log($"Timeline {name} time reset.");
}
else
{
Debug.LogError($"PlayableDirector for {name} not found.");
}
}
/// <summary>
/// 暂停指定的Timeline
/// </summary>
/// <param name="name">Timeline的名称</param>
// [YarnCommand("pause_timeline")]
public void PauseTimeline(string name)
{
if (directors.TryGetValue(name, out var director))
{
director.Pause();
Debug.Log($"Timeline {name} paused.");
}
else
{
Debug.LogError($"PlayableDirector for {name} not found.");
}
}
}
@@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: ccea65c35014bc24080e71809ed81683
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: