im试图使用麦克风输入来创建Pong游戏,以用作桨的控件。代码(c#)的以下部分正在移动拨片。
void Update ()
{
loudness=GetAveragedVolume() * sensitivty;
if (loudness>=8)
{
this.GetComponent<Rigidbody2D>().velocity=new Vector2(this.GetComponent<Rigidbody2D>().velocity.y,4);
}
下面的这段代码不应该做吗?但是它不起作用
else (loudness<=8)
{
this.GetComponent<Rigidbody2D>().velocity=new Vector2(this.GetComponent<Rigidbody2D>().velocity.y,-4);
}
这显然是一个简单的问题,但是我有点被这个菜鸟问题困在这里 预先感谢
编辑//我要做什么:
当麦克风接收到声音时,将操纵杆向上移动;如果没有声音,则将其向下放下,就像来自视觉放大器的值一样。
丹尼尔
答案 0 :(得分:0)
鉴于Update ()
被正确调用并且GetAveragedVolume()
返回有意义的值,它必须看起来像这样:
void Update () {
loudness = GetAveragedVolume() * sensitivty;
if (loudness > 8) {
this.GetComponent<Rigidbody2D>().velocity = new Vector2(this.GetComponent<Rigidbody2D>().velocity.x, 4);
}
else {
this.GetComponent<Rigidbody2D>().velocity = new Vector2(this.GetComponent<Rigidbody2D>().velocity.x, -4);
}
}
您的错误:
else (...)
无效。使用else if(...)
。this.GetComponent<Rigidbody2D>().velocity.y
分量,您使用this.GetComponent<Rigidbody2D>().velocity.x
而不是x
。一些提示:
>=
还是>
都没有关系,而对于您的浮点数绝对没有关系。else
就足够了。您不需要检查else if (loudness <= 8)
,因为如果不是> 8
,则它总是<= 8
。a = b;
/ a, b
而不是a=b;
/ a,b
,以使代码更具可读性。我希望对您有用!