AudioSource.PlayClipAtPoint()
将AudioSource
组件添加到附加了monobehaviour的当前gameObject上。但是,由于某种原因,它具有void返回类型,而不是返回对AudioSorce
组件的引用。很奇怪!
有什么方法可以有效地获得对创建的AudioSource
组件的引用,以便可以更改诸如音高和音量之类的参数?
编辑:从那以后我就在Answers.unity上找到了this,完美地回答了这个问题。
最佳答案
AudioSource.PlayOneShot()
不会将audioSource
组件添加到当前的GameObject中。播放参数中提供的声音/音频片段。
AudioSource myAudio;
myAudio = GetComponent<AudioSource>();
myAudio.pitch = 1f;
myAudio.volume = 1f;
myAudio.PlayOneShot(myAudio.clip);
编辑:
由于您的问题已编辑,并且
PlayOneShot()
更改为PlayClipAtPoint()
,因此PlayClipAtPoint
是静态函数。它创建一个AudioSource
,播放声音,然后销毁AudioSource
。不会将
AudioSource
添加到当前对象。它只是将每个AudioSource
创建为场景中的父GameObject。它用于播放短声音,您不应该尝试获取参考,因为它不会返回一个参考,因此您最终可能会在场景中获得另一个参考。您不能更改
pitch
,但是可以通过提供第三个参数来更改volume
。AudioSource.PlayClipAtPoint(myAudio.clip, this.transform.position, 1);
关于c# - 通过AudioSource.PlayClipAtPoint()实例化获取对AudioSource的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36804055/