Files
plugin-library/Assets/05.TableTextConversion/RunTime/Core/VideoTableDataCore.cs
2025-09-10 11:15:18 +08:00

62 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
using System;
using Cysharp.Threading.Tasks;
using UnityEngine;
using YooAsset;
namespace Stary.Evo.TableTextConversion
{
public interface IVideoTableDataCore : ITableDataCore
{
UniTask LoadData();
UniTask<Stary.Evo.TableTextConversion.VideoTableData.MessageInfo> PlayVideoName(string vidid);
}
public class VideoTableDataCore : IVideoTableDataCore, IDisposable
{
public string TableName => "Config_VideoTableData";
public bool IsLoad { get; set; }
private Stary.Evo.TableTextConversion.VideoTableData videoTableDatas;
public async UniTask LoadData()
{
var handle = YooAssets.LoadAssetAsync<Stary.Evo.TableTextConversion.VideoTableData>(TableName);
await handle.Task;
videoTableDatas = handle.GetAssetObject<Stary.Evo.TableTextConversion.VideoTableData>();
if (videoTableDatas == null)
{
Debug.LogError($"加载视频表失败请排查config下是否存在【{TableName}】表");
return;
}
IsLoad = true;
}
public async UniTask<Stary.Evo.TableTextConversion.VideoTableData.MessageInfo> PlayVideoName(string vidid)
{
if (!IsLoad)
{
await LoadData();
}
var info = videoTableDatas.infos.Find(x => x.vidid == vidid);
if (info != null && !info.filename.Contains("Video"))
{
info.filename = "Video_" + info.filename;
}
if (info != null && !info.videoframeName.Contains("Sprites"))
{
info.videoframeName = "Sprites_" + info.videoframeName;
}
return info;
}
public void Dispose()
{
videoTableDatas = null;
}
}
}