You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity音频剪辑无限循环实现及循环失效问题解决

Audio Source循环一小时后停止的修复方案

一、原生循环功能说明

Unity的Audio Source勾选Loop后理论上支持无限循环,出现停止大概率是音频文件本身问题、引擎内存/缓存异常,或是播放状态被意外修改。

二、排查与修复步骤

  • 检查音频文件:
    • 确认音频没有损坏,导出时要设置正确的循环标记(比如WAV文件需指定循环起止点,部分格式缺少循环头信息的话,Unity循环到末尾可能无法跳转)。
    • 换个其他音频文件测试,排除文件本身的问题。
  • 检查组件与对象状态:
    • 确保Audio Source所在的GameObject没被销毁、失活,组件也没被禁用。
    • 排查其他脚本,看是否有代码修改了Audio Source的loop属性、调用了Stop()方法,或者改变了isPlaying状态。
  • 引擎版本与设置:
    • 升级Unity到稳定版本,旧版本可能存在音频循环的bug。
    • 检查项目音频设置(Edit > Project Settings > Audio),关闭自动暂停或内存限制类的选项。

三、脚本兜底方案(稳定无限循环)

如果上述排查都没用,可以用脚本监听播放状态,自动重启循环:

using UnityEngine;

public class AudioLoopGuard : MonoBehaviour
{
    private AudioSource _audioSource;

    private void Awake()
    {
        _audioSource = GetComponent<AudioSource>();
        if (_audioSource == null)
        {
            Debug.LogError("当前GameObject没有AudioSource组件");
            return;
        }
        _audioSource.loop = true;
    }

    private void Update()
    {
        // 当循环开启但音频停止时,自动重启
        if (_audioSource.loop && !_audioSource.isPlaying && _audioSource.time > 0)
        {
            _audioSource.Play();
        }
    }
}

把这个脚本挂在带Audio Source的GameObject上即可,它会持续监测,确保循环不中断。

内容的提问来源于stack exchange,提问作者spjennie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 11:06:19