Files
AudioSystem/Assets/Scripts/OCES/Audio/Generated/AudioObject.cs
T
2026-03-20 17:55:53 +08:00

246 lines
5.2 KiB
C#

/*
* auto generated by tools(注意:千万不要手动修改本文件)
* AudioObject
*/
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
namespace OCES.Audio
{
[Serializable]
public partial class AudioObject : IBinarySerializable
{
/// <summary>
/// 唯一ID
/// </summary>
public uint Id { get; set; }
/// <summary>
/// 文件名
/// </summary>
public List<string> Name { get; set; }
/// <summary>
/// 备注
/// </summary>
public string Comment { get; set; }
/// <summary>
/// 初始延迟
/// 单位秒
/// </summary>
public float InitialDelay { get; set; }
/// <summary>
/// -1 = 无限循环
/// 0 = 不循环
/// >= 1 按次数循环
/// </summary>
public short LoopCount { get; set; }
/// <summary>
/// 0 = SFX
/// 1 = Muisc
/// 2 = Voice
/// </summary>
public MixingType MixingType { get; set; }
/// <summary>
/// 发音分组
/// </summary>
public uint Group { get; set; }
/// <summary>
/// 同时发音数限制
/// </summary>
public ushort ThrottleCount { get; set; }
/// <summary>
/// 最小发音间隔
/// </summary>
public ushort MinInterval { get; set; }
/// <summary>
/// 优先级
/// </summary>
public byte Priority { get; set; }
/// <summary>
/// 打断模式
/// 0 = 打断最早
/// 1 = 打断最新
/// </summary>
public KillMode KillMode { get; set; }
/// <summary>
/// Pitch Step阈值 ms
/// </summary>
public uint PitchStepThreshold { get; set; }
/// <summary>
/// 阶段变化半音数
/// </summary>
public sbyte PitchStep { get; set; }
/// <summary>
/// step几步后就不再继续提升音高
/// </summary>
public byte PitchStepLimit { get; set; }
/// <summary>
/// 相关的触感反馈ID
/// </summary>
public uint Haptic { get; set; }
/// <summary>
/// 0 = 随机播放
/// 1 = 顺序播放
/// 2 = 混合播放
/// </summary>
public ContainerType ContainerType { get; set; }
/// <summary>
/// 0 = 步进
/// 1 = 持续
/// </summary>
public bool ContainerPlayMode { get; set; }
/// <summary>
/// 按段落配置每段响应范围,用|分隔不同段落
/// </summary>
public string BlendRanges { get; set; }
/// <summary>
/// 0 = 指数
/// 1 = 线形
/// 2 = 对数
/// </summary>
public BlendCrossFadeType BlendCrossFadeType { get; set; }
/// <summary>
/// 指定避免重复的次数
/// </summary>
public byte LimitRepetition { get; set; }
/// <summary>
/// 0 = Standard
/// 1 = Shuffle
/// </summary>
public bool RandomType { get; set; }
public void DeSerialize(BinaryReader reader)
{
Id = reader.ReadUInt32();
var nameCount = reader.ReadInt32();
if (nameCount > 0)
{
Name = new List<string>();
for (int i = 0; i < nameCount; i++)
{
Name.Add(reader.ReadString());
}
}
else
{
Name = null;
}
Comment = reader.ReadString();
InitialDelay = reader.ReadSingle();
LoopCount = reader.ReadInt16();
MixingType = (MixingType)reader.ReadByte();
Group = reader.ReadUInt32();
ThrottleCount = reader.ReadUInt16();
MinInterval = reader.ReadUInt16();
Priority = reader.ReadByte();
KillMode = (KillMode)reader.ReadByte();
PitchStepThreshold = reader.ReadUInt32();
PitchStep = reader.ReadSByte();
PitchStepLimit = reader.ReadByte();
Haptic = reader.ReadUInt32();
ContainerType = (ContainerType)reader.ReadByte();
ContainerPlayMode = reader.ReadBoolean();
BlendRanges = reader.ReadString();
BlendCrossFadeType = (BlendCrossFadeType)reader.ReadByte();
LimitRepetition = reader.ReadByte();
RandomType = reader.ReadBoolean();
}
public void Serialize(BinaryWriter writer)
{
writer.Write(Id);
if (Name == null || Name.Count == 0)
{
writer.Write(0);
}
else
{
writer.Write(Name.Count);
for (int i = 0; i < Name.Count; i++)
{
writer.Write(Name[i]);
}
}
writer.Write(Comment);
writer.Write(InitialDelay);
writer.Write(LoopCount);
writer.Write((byte)MixingType);
writer.Write(Group);
writer.Write(ThrottleCount);
writer.Write(MinInterval);
writer.Write(Priority);
writer.Write((byte)KillMode);
writer.Write(PitchStepThreshold);
writer.Write(PitchStep);
writer.Write(PitchStepLimit);
writer.Write(Haptic);
writer.Write((byte)ContainerType);
writer.Write(ContainerPlayMode);
writer.Write(BlendRanges);
writer.Write((byte)BlendCrossFadeType);
writer.Write(LimitRepetition);
writer.Write(RandomType);
}
}
[Serializable]
public partial class AudioObjectConfig : IBinarySerializable
{
Dictionary<uint,AudioObject> m_audioObjectInfos = new();
List<AudioObject> m_audioObjectInfoList;
public List<AudioObject> AudioObjectList()
{
this.m_audioObjectInfoList ??= new List<AudioObject>(m_audioObjectInfos.Values);
return this.m_audioObjectInfoList;
}
public void DeSerialize(BinaryReader reader)
{
int count = reader.ReadInt32();
for (int i = 0; i < count; i++)
{
AudioObject tempData = new();
tempData.DeSerialize(reader);
this.m_audioObjectInfos.Add(tempData.Id, tempData);
}
}
public void Serialize(BinaryWriter writer)
{
writer.Write(this.m_audioObjectInfos.Count);
foreach (AudioObject audioObject in this.m_audioObjectInfos.Values)
{
audioObject.Serialize(writer);
}
}
public AudioObject QueryById(uint id)
{
return this.m_audioObjectInfos.GetValueOrDefault(id);
}
}
}