【发布时间】:2019-02-09 23:05:50
【问题描述】:
我首先要说我对 C# 和 Unity 很陌生,所以如果我缺乏被认为是常识的知识,请提前道歉。另外,我在这里检查了其他问题,但没有找到任何特别解决我的具体问题的答案。但是,如果有一个,我将不胜感激。
无论如何,我正在尝试编写一些代码,当按住某个键时会播放声音,而当松开键时会停止播放。不同的键会发出不同的声音,因此 GetKeyUp() 函数应该适用于当前按下的任何键。
我已经为 inputKey 声明了一个字符串,并且 inputKey 被分配了任何被按下的键,然后传递给包含 GetKeyUp() 函数的 if 语句。我已经尝试过这种方法的许多小变种,但我目前使用的是唯一没有产生错误消息的方法(尽管代码仍然不起作用)
public string inputKey;
else if (Input.GetKeyDown(KeyCode.S))
{
freq = 293.66;
gain = volume;
}
inputKey = (Input.inputString).ToUpper();
if (Input.GetKeyUp(KeyCode.inputKey));
{
gain = 0;
}
所以在上面的例子中,当按下 S 键时,就会播放声音。 inputKey 显示为 'S' 所以我希望 'Input.GetKeyUp(KeyCode.inputKey)' 等同于 'Input.GetKeyUp(KeyCode.S' 和停止播放的声音,但事实并非如此声音继续播放。
任何帮助或建议将不胜感激,谢谢。
【问题讨论】: