This commit is contained in:
2025-11-12 14:22:04 +08:00
parent 7c8bb4b46c
commit 7aeda74f41
15 changed files with 280 additions and 129 deletions

View File

@@ -7,14 +7,14 @@ namespace Stary.Evo.TableTextConversion
{
public interface IAudioTableDataCore : ITableDataCore
{
UniTask<Stary.Evo.TableTextConversion.AudioTableData.MessageInfo> GetAudioInfo(string auid);
UniTask<AudioClip> GetAudioClip(string auid);
UniTask<AudioEntity> GetAudioAssetInfo(string auid);
UniTask<AudioClip> GetAudioAssetClip(string auid);
}
#if YooAssets
public class AudioTableDataCore : IAudioTableDataCore, IDisposable
{
private Stary.Evo.TableTextConversion.AudioTableData audioTableData;
private AudioTableData audioTableData;
public string TableName => "Config_AudioTableData";
public bool IsLoad { get; set; }
@@ -23,14 +23,15 @@ namespace Stary.Evo.TableTextConversion
public async UniTask LoadData()
{
var audioHandle =
YooAssets.LoadAssetAsync<Stary.Evo.TableTextConversion.AudioTableData>(TableName);
YooAssets.LoadAssetAsync<AudioTableData>(TableName);
await audioHandle.Task;
audioTableData = audioHandle.GetAssetObject<Stary.Evo.TableTextConversion.AudioTableData>();
audioTableData = audioHandle.GetAssetObject<AudioTableData>();
if (audioTableData == null)
{
Debug.LogError($"加载音频表失败请排查config下是否存在【{TableName}】表");
return;
}
IsLoad = true;
}
@@ -40,7 +41,7 @@ namespace Stary.Evo.TableTextConversion
/// </summary>
/// <param name="auid"></param>
/// <returns></returns>
public async UniTask<Stary.Evo.TableTextConversion.AudioTableData.MessageInfo> GetAudioInfo(string auid)
public async UniTask<AudioEntity> GetAudioAssetInfo(string auid)
{
if (!IsLoad)
{
@@ -61,14 +62,14 @@ namespace Stary.Evo.TableTextConversion
/// </summary>
/// <param name="auid"></param>
/// <returns></returns>
public async UniTask<AudioClip> GetAudioClip(string auid)
public async UniTask<AudioClip> GetAudioAssetClip(string auid)
{
if (!IsLoad)
{
await LoadData();
}
var info = await GetAudioInfo(auid);
var info = await GetAudioAssetInfo(auid);
var handle = YooAssets.LoadAssetAsync<AudioClip>(info.filename);
await handle.Task;
if (handle.Status == EOperationStatus.Succeed)
@@ -89,4 +90,5 @@ namespace Stary.Evo.TableTextConversion
audioTableData = null;
}
}
#endif
}

View File

@@ -24,7 +24,7 @@ namespace Stary.Evo.TableTextConversion
public IAudioTableDataCore AudioTableCore;
public IUITableDataCore UITableCore;
public IVideoTableDataCore VideoTableCore;
#if YooAssets
// 私有构造函数,防止外部实例化
private TableSystem()
{
@@ -32,6 +32,7 @@ namespace Stary.Evo.TableTextConversion
UITableCore = new UITableDataCore();
VideoTableCore = new VideoTableDataCore();
}
#endif
public void Dispose()
{

View File

@@ -7,11 +7,11 @@ namespace Stary.Evo.TableTextConversion
{
public interface IUITableDataCore : ITableDataCore
{
UniTask<Stary.Evo.TableTextConversion.UITableData.MessageInfo> GetUIInfo(string uiid);
UniTask<Sprite> GetSprite(string uiid);
UniTask<UIEntity> GetUIAssetInfo(string uiid);
UniTask<Sprite> GetSpriteAsset(string uiid);
}
#if YooAssets
public class UITableDataCore : IUITableDataCore, IDisposable
{
public string TableName => "Config_UITableData";
@@ -21,9 +21,9 @@ namespace Stary.Evo.TableTextConversion
public async UniTask LoadData()
{
var handle = YooAssets.LoadAssetAsync<Stary.Evo.TableTextConversion.UITableData>(TableName);
var handle = YooAssets.LoadAssetAsync<UITableData>(TableName);
await handle.Task;
uiTableDatas = handle.GetAssetObject<Stary.Evo.TableTextConversion.UITableData>();
uiTableDatas = handle.GetAssetObject<UITableData>();
if (uiTableDatas == null)
{
Debug.LogError($"加载UI表失败请排查config下是否存在【{TableName}】表");
@@ -32,7 +32,7 @@ namespace Stary.Evo.TableTextConversion
IsLoad = true;
}
public async UniTask<Stary.Evo.TableTextConversion.UITableData.MessageInfo> GetUIInfo(string uiid)
public async UniTask<UIEntity> GetUIAssetInfo(string uiid)
{
if (!IsLoad)
{
@@ -48,14 +48,14 @@ namespace Stary.Evo.TableTextConversion
return info;
}
public async UniTask<Sprite> GetSprite(string uiid)
public async UniTask<Sprite> GetSpriteAsset(string uiid)
{
if (!IsLoad)
{
await LoadData();
}
var info = await GetUIInfo(uiid);
var info = await GetUIAssetInfo(uiid);
var handle = YooAssets.LoadAssetAsync<Sprite>(info.filename);
await handle.Task;
if (handle.Status == EOperationStatus.Succeed)
@@ -76,4 +76,5 @@ namespace Stary.Evo.TableTextConversion
uiTableDatas = null;
}
}
#endif
}

View File

@@ -8,32 +8,33 @@ namespace Stary.Evo.TableTextConversion
public interface IVideoTableDataCore : ITableDataCore
{
UniTask LoadData();
UniTask<Stary.Evo.TableTextConversion.VideoTableData.MessageInfo> PlayVideoName(string vidid);
UniTask<VideoEntity> PlayVideoAssetName(string vidid);
}
#if YooAssets
public class VideoTableDataCore : IVideoTableDataCore, IDisposable
{
public string TableName => "Config_VideoTableData";
public bool IsLoad { get; set; }
private Stary.Evo.TableTextConversion.VideoTableData videoTableDatas;
private VideoTableData videoTableDatas;
public async UniTask LoadData()
{
var handle = YooAssets.LoadAssetAsync<Stary.Evo.TableTextConversion.VideoTableData>(TableName);
var handle = YooAssets.LoadAssetAsync<VideoTableData>(TableName);
await handle.Task;
videoTableDatas = handle.GetAssetObject<Stary.Evo.TableTextConversion.VideoTableData>();
videoTableDatas = handle.GetAssetObject<VideoTableData>();
if (videoTableDatas == null)
{
Debug.LogError($"加载视频表失败请排查config下是否存在【{TableName}】表");
return;
}
IsLoad = true;
}
public async UniTask<Stary.Evo.TableTextConversion.VideoTableData.MessageInfo> PlayVideoName(string vidid)
public async UniTask<VideoEntity> PlayVideoAssetName(string vidid)
{
if (!IsLoad)
{
@@ -59,4 +60,5 @@ namespace Stary.Evo.TableTextConversion
videoTableDatas = null;
}
}
#endif
}