c# - 如何在播放器中播放音频?
问题描述
在这里需要一些帮助。我是新来的团结。我正在创建一个基于火箭飞船的游戏,并将音频文件附加到我的火箭飞船上。甚至编写了代码让它在我按下特定按钮时播放。
直到昨天,它似乎工作得很好,但由于某种原因,今天我玩游戏时音频不再播放。我读过文章并观看过视频,但似乎没有任何帮助。
我尝试了几件事,从取消附加和重新附加音频文件到重写代码。
public AudioSource audioSource;
public void Thrust()
{
float rotationThisFrame = rcsThrust * Time.deltaTime;
if (Input.GetKey(KeyCode.W))
{
rigidBody.AddRelativeForce(Vector3.up * rotationThisFrame);
if (!audioSource.isPlaying)
audioSource.Play();
else
audioSource.Stop();
}
}
解决方案
你在做
if (!audioSource.isPlaying)
audioSource.Play();
else
audioSource.Stop();
所以,如果audioSource
正在玩,你就去做Stop
吧!您基本上是在每一帧交替打开和关闭声音,因此您始终只“听到”一帧的声音,然后从音频文件的开头开始。
您可能会考虑将else
案例添加到您的周围检查中,例如
if (Input.GetKey(KeyCode.W))
{
rigidBody.AddRelativeForce(Vector3.up * rotationThisFrame);
if (!audioSource.isPlaying)
audioSource.Play();
}
else
{
audioSource.Stop();
}
假设当然audioSource
是参考并且clip
现在设置它应该在按住键和不按住键时Play
发出声音。WStop
W
推荐阅读
- python - 按索引拆分 numpy 值,导致形状不规则
- php - 在 foreach 中获取单个值
- python-3.x - Tukey HSD 测试的“float”和“str”错误实例之间不支持“<”
- html - % height 如果应用于 tbody - 在 FireFox 和 Microsoft Edge / IE 中不起作用,但在 Google Chrome 中起作用
- javascript - .map() 不是函数
- android - 像 Xcode 框架一样创建 Android Studio SDK 项目
- excel - 用于复制和粘贴的宏
- c++ - C++ 链接器命令失败
- sql - 获取一个月内最少15天出勤的学生名单,一年内连续4个月来
- angular - Angular 6 SSR TypeError:无法读取未定义的属性“根”