Files
AudioSystem/Assets/Scripts/OCES/Audio/HandWritten/HandWrittenDefinitions.cs
T
Oliver 91f1b18771 feat: add PlayOnTrigger for music-synced audio playback
- Add PlayOnTrigger method to AudioSystem for scheduling audio playback on music sync events (beat/bar/grid)
- Rename ButtonInvoker to SetStateBind for better clarity
- Update PlaySoundBind to support both direct playback and trigger-based playback with callback flags
- Add CallbackFlags enum (MusicSyncBeat, MusicSyncBar, MusicSyncGrid)
- Update Metronome demo to use new callback flag naming convention
- Add test audio file sfx_notice_test.wav
- Update scene UI to demonstrate PlayOnTrigger functionality
2026-04-16 14:39:58 +08:00

96 lines
2.2 KiB
C#

using System.IO;
namespace OCES.Audio
{
/// <summary>
/// 替换策略类型
/// </summary>
public enum KillMode
{
Oldest, // 打断最早开始的
Newest, // 打断最新开始的
}
/// <summary>
/// 混音分组
/// </summary>
public enum MixingType
{
Sfx = 0,
Voice,
Accented,
}
/// <summary>
/// 声音容器类型
/// </summary>
public enum ContainerType
{
Random = 0,
Sequence,
Blend,
Switch,
}
public enum BlendCrossFadeType
{
Exponential = 0,
Linear,
Logarithmic,
}
public enum AlignMode
{
Immediate,
Beat,
Bar,
}
public enum ActiveSoundState
{
Pending, // 已进入调度,但还没真正播放
Playing, // 已经开始播放
Finished,
}
public interface IBinarySerializable
{
void DeSerialize(BinaryReader reader);
void Serialize(BinaryWriter writer);
}
// ─────────────────────────────────────────────
// 辅助接口,让泛型方法同时处理 MusicPath 和 AmbiencePath
// ─────────────────────────────────────────────
public interface IPathEntry
{
uint Id { get; }
string Path { get; }
uint ContainerId { get; }
int Priority { get; }
}
public interface ITransitionConfig
{
float FadeOutOffset { get; }
float FadeOutTime { get; }
float FadeInOffset { get; }
float FadeInTime { get; }
}
public partial class MusicTransition : ITransitionConfig { }
public partial class AmbienceTransition : ITransitionConfig { }
public partial class MusicPath : IPathEntry { }
public partial class AmbiencePath : IPathEntry { }
public enum CallbackFlags
{
MusicSyncBeat = 1,
MusicSyncBar = 2,
MusicSyncGrid = 3,
}
}