Unity从不同的脚本访问PlayOneShot会引发对象引用错误

问题描述 投票:-1回答:2

我想从AudioClips数组中播放AudioClips,并且我试图使其与AudioSource.PlayOneShot一起工作,但是由于某种原因,我在以下位置得到“对象引用未设置为对象实例”错误当我尝试从其他脚本访问PlayOneShot时。因此,我做了什么,我创建了一个空的游戏对象,并向其附加了AudioSource组件和AudioControler脚本。该脚本如下所示:

public AudioClip[] clips;
AudioSource audioSource;
private void Start(){
    audioSource = GetComponent<AudioSource>();
  }
public void PlaySound(){
    audioSource.PlayOneShot(clips[0], 1);
  }

然后,我将一些音频剪辑附加到编辑器中的“ clips”数组,然后从另一个脚本调用PlaySound()方法,这给了我错误。知道我在这里做错了吗?

c# unity3d
2个回答
0
投票

问题是

-从另一个脚本访问monobehaviour脚本,我用new实例化了它,这真是个糟糕的主意!不要尝试用MonoBehaviour实例化从new继承的脚本!!!这有助于我理解:MonoBehaviour

0
投票

public void PlaySound(){if(audioSource!=空)audioSource.PlayOneShot(clips [0],1);

© www.soinside.com 2019 - 2024. All rights reserved.