gpt4 book ai didi

c# - 当一个物体经过另一个物体时如何发出声音?

转载 作者:行者123 更新时间:2023-12-03 00:29:38 25 4
gpt4 key购买 nike

嘿StackOverflow社区,我正在制作我的第一款游戏,但遇到了问题。这场比赛是为了躲避障碍物以达到关卡的目的。所以我的问题是,只要球越过障碍物,我就想发出“呜呜”的声音。我创建了一个不可见对象,该对象应该在球通过不可见对象时执行“呜呜”声。

这些是“不可见”对象上的设置:
enter image description here

如果查看图像,您会看到有一个包含以下代码行的“Woosh”脚本:

using UnityEngine;

public class Woosh : MonoBehaviour
{
void OnCollisionEnter(Collision collisionInfo)
{
if (collisionInfo.collider.tag == "Player")
{
FindObjectOfType<AudioManager>().Play("Woosh");
}
}
}

该代码应该使不可见的对象在与播放器碰撞时播放“Woosh”音频。但是,当我在游戏中尝试时,当我通过不可见的对象时,音频将永远无法播放。

为了给您提供信息,我确实有一个音频管理器,其中包含我到目前为止已实现的所有声音。可以在这里看到:

enter image description here

注意:所有其他声音均有效,但“Woosh”声音无效。

任何帮助表示赞赏!

提前致谢,
体重

最佳答案

评论还不够。

我想告诉您的是,您不能仅自动假设问题出在“哇”声。那只是可能出错的事情之一。您有以下代码:

public class Woosh : MonoBehaviour
{
void OnCollisionEnter(Collision collisionInfo)
{
if (collisionInfo.collider.tag == "Player")
{
FindObjectOfType<AudioManager>().Play("Woosh");
}
}
}

您的期望是,当调用 OnCollisionEnter时,将播放“Woosh”声音。您说声音没有播放,所以您必须找出问题所在。这是我要检查的内容:
  • 您可以让“Woosh”声音在其他地方播放吗?您应该能够在程序中添加代码以播放“Woosh”声音。也许用“Woosh”替换播放“ShatterSmall”的代码。如果声音没有在那里播放,则“Woosh”声音可能存在问题,您需要对其进行修复。如果声音确实在那儿播放,那么还有其他问题。
  • 如果“Woosh”在其他地方(而不是在此代码中)播放,则您必须检查该代码是否正在执行。如果在调试器中运行此代码,请在OnCollisionEnter方法上放置一个断点,以查看是否被调用。如果未调用,则问题出在其他地方。如果您没有调试器,则可以输出诸如“嘿,我到了!”之类的消息。告诉您OnCollisionEnter函数实际上是被调用的。
  • 如果要使用OnCollisionEnter,则需要检查collisionInfo.collider.tag是否确实包含值“Player”。同样,使用某种输出函数来告诉您该变量中的内容。
  • 如果是collisionInfo.collider.tag == "Player",请检查对FindObjectOfType<AudioManager>的调用是否返回期望值。

  • 您可以分拆代码:
    var mgr = FindObjectOfType<AudioManager>();
    if (mgr == null)
    {
    // some error here. Maybe throw an exception.
    }
    else
    {
    // Make sure (somehow) that it's really the object you wanted
    }
    mgr.Play("Woosh");
  • 如果以上内容告诉您获得的对象正确,则声音播放可能存在问题。 Play是否抛出任何异常?

  • 我在这里要说明的一点是,调试涉及质疑所有假设,并进行测试以查看失败的地方。最好用调试器来完成,因为它使您可以逐步遍历代码以查看正在发生的事情。

    如果您不知道如何使用调试器,那么现在就是学习的最佳时机。它将节省您数天的调试时间。

    关于c# - 当一个物体经过另一个物体时如何发出声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51330833/

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