Unity“无法播放禁用的音频源”

本文关键字:音频 播放 Unity | 更新日期: 2023-09-27 18:04:53

我一直试图在函数调用时播放效果声音,但我一直收到通知"无法播放禁用的音频源"。我还注意到,即使我把它关掉了,声音也会在清醒时播放。这是我的EffectController类的样子

//--------------------------------------------------------------------------------------------------------------------
//  <copyright file="EffectController.cs" company="ShinjiGames">
//     Copyright (c) ShinjiGames LLC 2016.  All rights reserved.
//  </copyright>
//--------------------------------------------------------------------------------------------------------------------
namespace Assets.Scripts.Effects
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using GameSettings;
    using UnityEngine;
    /// <summary>
    /// Responsible for audio cues and other add-on effects
    /// </summary>
    public class EffectController : MonoBehaviour
    {
        /// <summary>
        /// The sound that plays whenever the player hits a pickup
        /// </summary>
        public AudioSource PickupChime;
        /// <summary>
        /// The current instance of the effect controller
        /// </summary>
        private static EffectController instance;
        /// <summary>
        /// Get the instance of the effect controller
        /// </summary>
        /// <returns>The instance of the effect controller</returns>
        public static EffectController GetInstance()
        {
            return EffectController.instance;
        }
        /// <summary>
        /// When the player hits a pickup on the given position, plays the chime and add an effect
        /// </summary>
        /// <param name="position">The position of the collision</param>
        public void PickupEffect(Vector3 position)
        {
            this.PickupChime.enabled = true;
            this.PickupChime.PlayOneShot(this.PickupChime.clip);
        }
        /// <summary>
        /// When the players hits a bomb, display the bomb explosion 
        /// </summary>
        /// <param name="position">The origin of the explosion</param>
        public void BombEffect(Vector3 position)
        {
            var explosion = GameObject.Instantiate(PrefabManager.GetIntance().BombExplosionPrefab);
            explosion.GetComponent<BombExplosion>().SetOrigin(position);
        }
        /// <summary>
        /// Initialization for the class
        /// </summary>
        private void Start()
        {
            this.PickupChime.enabled = true;
            this.GetComponent<AudioSource>().enabled = true;
            if (EffectController.instance != null)
            {
                GameObject.Destroy(EffectController.instance.gameObject);
            }
            EffectController.instance = this;
            GameObject.DontDestroyOnLoad(this.gameObject);
        }
    }
}
谁能帮我一下?我正在慢慢地发疯

编辑1:我更新了类,而不是在AudioSource中,它有自己的AudioSource组件,并将剪辑改为编钟,这解决了问题。

Unity“无法播放禁用的音频源”

您可能在检查器中未选中音频源