【问题标题】:Audio null in unity统一的音频为零
【发布时间】:2020-06-04 07:03:52
【问题描述】:

当我尝试运行我的(悲伤的借口)游戏时,我遇到了这个奇怪的统一错误。这是代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ARsound : MonoBehaviour
{

    public static AudioClip sound;
    static AudioSource audioSrc;


    void Start()
    {
        sound = Resources.Load<AudioClip>("AR SFX");
        audioSrc = GetComponent<AudioSource>();
    }

    public static void playSound()
    {
        audioSrc.PlayOneShot(sound);
    }


}

错误是这样的:

PlayOneShot 使用空音频剪辑播放

即使该音频剪辑看起来并不为空。 以下是一些附加信息:

Gun:Update()(在 Assets/Scripts/Gun.cs:17)

建议?

【问题讨论】:

  • 这里没有while 循环。您的问题标题与问题正文的匹配程度也完全不清楚。
  • while循环在哪里!!?
  • 我不是指while循环。不好了!那是我要问的另一个问题。现在是凌晨 3 点。所以我有点累。我很抱歉。我把标题改成了我想要的。
  • 您是否认为Resources.Load&lt;AudioClip&gt;("AR SFX"); 失败了,所以sound 很简单null?附加信息Gun:Update() (at Assets/Scripts/Gun.cs:17) 根本没有帮助,因为我认为这只是你打电话给ARSound.playSound(); 的地方......
  • 我想通了!我做的有点不同。首先我声明了两个音频源public AudioSource shootSound; public AudioSource shootFastSound; 然后,我做了shootSound = GetComponent&lt;AudioSource&gt;(); shootFastSound = GetComponent&lt;AudioSource&gt;(); 最后,我做了```private void ShootFast() { shootFastSound.Play(); // 其他代码 }

标签: c# unity3d audio-source audioclip


【解决方案1】:

您对 Resources.Load 的调用返回 null - 当未找到资产时会发生这种情况(无例外)。

参见文档:https://docs.unity3d.com/ScriptReference/Resources.Load.html

因此,您需要确保资产存在并且可以加载。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-29
    • 2022-08-05
    相关资源
    最近更新 更多