using UnityEngine; namespace OCES.Audio { public partial class MusicContainerConfig { /// /// 解析拍号字符串(如 "4/4", "3/4"),返回每小节拍数。 /// public static int GetBeatsPerBar(string timeSig) { if (string.IsNullOrEmpty(timeSig)) return 4; string[] parts = timeSig.Split('/'); if (parts.Length >= 1 && int.TryParse(parts[0], out int beats)) return beats; return 4; } public void Validate(MusicSegmentConfig segmentConfig) { foreach (MusicContainer container in this.m_musicContainerInfos.Values) { foreach (uint segmentId in container.Segments) { if (segmentId < 1000000) { MusicSegment segment = segmentConfig.QueryById(segmentId); if (segment is { IsOffBeat: true }) { container.TimeSig = ""; Debug.LogWarning($"[AudioSystem] {container.Id} Container含有错误配置的Segment {segment.Id}。" + "切换至此Container时将不会启动beat/grid回调"); break; } } } } } } }