Files
AudioSystem/Assets/Scripts/OCES/Audio/HandWritten/LongAudio/MusicSegment.cs
T

56 lines
2.1 KiB
C#

using UnityEngine;
namespace OCES.Audio
{
public partial class MusicSegment
{
public bool IsOffBeat { get; set; }
}
public partial class MusicSegmentConfig
{
// TODO: 负偏移功能待开发
public void Validate()
{
foreach (MusicSegment segment in this.m_musicSegmentInfos.Values)
{
AudioClip clip =
AudioSystem.Instance.ResourceLoader.LoadSync<AudioClip>(
$"{AudioExtendSettings.Instance.audioResourcePath}/{segment.Name}");
if (!clip)
{
Debug.LogError($"[MusicSegmentConfig] 音频文件未找到: {segment.Name}, SegmentId: {segment.Id}");
segment.StartOffset = 0;
segment.EndOffset = 0;
continue;
}
double clipLength = clip.length;
if (segment.StartOffset > clipLength)
{
Debug.LogError($"[MusicSegmentConfig] StartOffset({segment.StartOffset}) > AudioClip.length({clipLength}), SegmentId: {segment.Id}, Name: {segment.Name}" +
"已弃用 StartOffset");
segment.StartOffset = 0;
segment.IsOffBeat = true;
}
if (segment.EndOffset > clipLength)
{
Debug.LogError($"[MusicSegmentConfig] EndOffset({segment.EndOffset}) > AudioClip.length({clipLength}), SegmentId: {segment.Id}, Name: {segment.Name}");
segment.EndOffset = 0;
}
if (segment.StartOffset + segment.EndOffset > clipLength)
{
Debug.LogError($"[MusicSegmentConfig] StartOffset({segment.StartOffset}) + EndOffset({segment.EndOffset}) > AudioClip.length({clipLength}), SegmentId: {segment.Id}, Name: {segment.Name}");
segment.StartOffset = segment.EndOffset = 0;
segment.IsOffBeat = true;
}
}
}
}
}