【发布时间】:2021-07-21 23:06:45
【问题描述】:
我正在尝试创建音频管理器,以便可以轻松地将音频音效添加到我想要的任何脚本中。我有 3 个脚本,一个坐在空游戏对象 (SoundManager) 上,另一个是 unmono 脚本,它只有我想要更改的音频数据,第三个是我正在尝试应用的脚本AudioSource 给它(现在它只是我的角色攻击) 我一直在尝试使用我在网上找到的一些教程。他们中的大多数使用“查找”组件,我知道这不是使用它们的最佳方式。我试图不让音频源组件显示在声音管理器游戏对象上,我试图使用 SoundManager 数组参考在我想要的特定字符上创建它。
SoundData 脚本
using UnityEngine.Audio;
using UnityEngine;
[System.Serializable]
public class Sound{
public string name;
public AudioClip clip;
[HideInInspector]
public AudioSource source;
public bool loop;
public bool playOnstart;
[Range(0f,1f)]
public int spatialBlend;
public int minDistance;
public int maxDistance;
public AudioRolloffMode audioMode;
}
SoundManager 脚本
using UnityEngine.Audio;
using UnityEngine;
using System;
public class SoundManager : MonoBehaviour
{
public Sound[] sounds;
// public AudioSource audioSource;
private void Awake()
{
foreach (Sound s in sounds)
{
// audioSource = gameObject.AddComponent<AudioSource>();
//s.source = gameObject.AddComponent<AudioSource>();
s.source.clip = s.clip;
s.source.playOnAwake = s.playOnstart;
s.source.loop = s.loop;
s.source.spatialBlend = s.spatialBlend;
s.source.minDistance = s.minDistance;
s.source.maxDistance = s.maxDistance;
s.source.rolloffMode = s.audioMode;
}
}
public void Play()
{
//right now i dont have anything that workd
}
}
在我尝试引用 Soundmanager 并尝试 Getcommponent 音频脚本的第三个脚本中,但它在大多数情况下都给了我 NullArgumant
【问题讨论】: