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组件,并将剪辑改为编钟,这解决了问题。
您可能在检查器中未选中音频源