gpt4 book ai didi

c# - 将方法移到另一个类时无法产生声音

转载 作者:行者123 更新时间:2023-12-02 23:41:13 25 4
gpt4 key购买 nike

因此,对于初学者来说,我想说的是下面的代码有效。但是它不是我想要的结构:

public AudioClip pickup;

void OnTriggerEnter(Collider collider)
{
//Trigger for pickups
if (collider.gameObject.CompareTag("Pickup"))
{
AudioSource audio = GetComponent<AudioSource>();
audio.PlayOneShot(pickup);
}
}

但是我想将该类分为两部分,并使用播放器 Controller (部分内容已在上面编写)用于从名为“LevelClass”的新类中调用一个函数,该类将容纳用于拾取的方法,如下所示:
public void collidePickup(Collider collider)
{
collider.gameObject.SetActive(false);
AudioSource audio = GetComponent<AudioSource>();
audio.PlayOneShot(pickup);
}

并让播放器 Controller 调用该函数,如下所示:
 level.collidePickup(collider);

我还将声音文件与脚本链接在一起,以便可以播放声音。通过测试,我确定是在“音频源”部分中引起了该问题,因为它找不到要使用的音频源。我有什么办法可以使我能够在levelclass而不是playercontroller中使用audiosource的实例?

最佳答案

您应该能够将对音频源的引用传递到这样的函数中。

public void collidePickup(Collider collider,ref AudioSource audio)
{
collider.gameObject.SetActive(false)
audio.PlayOneShot(pickup);
}

然后,您只需要在调用音频源时将其传递给函数即可。

关于c# - 将方法移到另一个类时无法产生声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38340102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com