Design_SubModule/Scripts/DR_Generated/DRSound.cs
zhengxianxin 14f42c5058 111
2026-01-21 17:17:49 +08:00

163 lines
4.2 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.

// 此文件由 ThriftIntegratedPipeline 自动生成,请勿手动修改
// 配置类: Sound
// 数据类: SoundItem
using UnityEngine;
using Byway.Config;
using Byway.Thrift.Data;
using UnityGameFramework.Runtime;
namespace CrazyMaple
{
/// <summary>
/// Sound 数据行
/// </summary>
public class DRSound : DataRowBase
{
private SoundItem _configData;
/// <summary>
/// 唯一标识
/// </summary>
public override int Id
{
get
{
return _configData?.Id ?? 0;
}
}
/// <summary>
/// AssetName
/// </summary>
public string AssetName
{
get
{
return _configData?.AssetName ?? "";
}
}
/// <summary>
/// Priority
/// </summary>
public int Priority
{
get
{
return _configData?.Priority ?? 0;
}
}
/// <summary>
/// Loop
/// </summary>
public bool Loop
{
get
{
return _configData?.Loop ?? false;
}
}
/// <summary>
/// Volume
/// </summary>
public float Volume
{
get
{
return System.Convert.ToSingle(_configData?.Volume ?? 0.0);
}
}
/// <summary>
/// SpatialBlend
/// </summary>
public float SpatialBlend
{
get
{
return System.Convert.ToSingle(_configData?.SpatialBlend ?? 0.0);
}
}
/// <summary>
/// MaxDistance
/// </summary>
public float MaxDistance
{
get
{
return System.Convert.ToSingle(_configData?.MaxDistance ?? 0.0);
}
}
/// <summary>
/// 从配置加载数据(优先使用传入的配置实例)
/// </summary>
public void LoadFromConfig(int id, Sound config = null)
{
if (config == null)
{
config = ConfigManager.Instance.GetConfig<Sound>();
}
if (config?.Sounds != null)
{
config.Sounds.TryGetValue(id, out _configData);
}
}
/// <summary>
/// 直接设置配置数据(性能优化:跳过字典查询)
/// </summary>
public void SetConfigData(SoundItem configData)
{
_configData = configData;
}
/// <summary>
/// 解析数据行(优化:使用 userData 传入的配置实例,避免重复调用 GetConfig
/// </summary>
public override bool ParseDataRow(string dataRowString, object userData)
{
int id = 0;
if (!int.TryParse(dataRowString, out id))
{
return false;
}
// 性能优化:尝试从 userData 获取配置字典,直接获取 Item
if (userData is System.Collections.Generic.Dictionary<string, object> userDataDict)
{
// 优先尝试从缓存的字典直接获取 Item最快
if (userDataDict.TryGetValue("ConfigDict", out object dictObj))
{
var dict = dictObj as System.Collections.Generic.Dictionary<int, SoundItem>;
if (dict != null && dict.TryGetValue(id, out var item))
{
_configData = item;
return true;
}
}
// 备选方案:从配置实例获取
if (userDataDict.TryGetValue("ConfigInstance", out object configObj))
{
var config = configObj as Sound;
if (config != null)
{
LoadFromConfig(id, config);
return _configData != null;
}
}
}
// 兜底方案:直接查询(最慢)
LoadFromConfig(id);
return _configData != null;
}
}
}