我正在开发一个节奏游戏,并且想让它与吉他英雄控制器兼容。
使用遗留输入系统,我可以读取触碰的键(按钮)但是,并不能读取弹奏的效果。我已经测试了我的吉他,于是知道这是一个设备的问题。然而,我已经尝试用Xplorer吉他控件(适用于Xbox 360),看是否有所不同。我的Unity版本是2022。
我的问题是:
-我的当前版本中有没有办法让其正常工作?如果是的话,如何实现?
-在不同版本的Unity中,是否会更好地工作?
-在Unity中有没有更容易使用的吉他控制器?
以下是我的代码:
private void
Start
()
{
_prevStrum = Input.GetAxisRaw("5th Axis");
}
private void
Update
()
{
// 按钮
if (Input.GetKeyDown(KeyCode.JoystickButton0)) OnGreen?.Invoke();
if (Input.GetKeyDown(KeyCode.JoystickButton1)) OnRed?.Invoke();
if (Input.GetKeyDown(KeyCode.JoystickButton3)) OnYellow?.Invoke();
if (Input.GetKeyDown(KeyCode.JoystickButton2)) OnBlue?.Invoke();
if (Input.GetKeyDown(KeyCode.JoystickButton4)) OnOrange?.Invoke();
float strum = Input.GetAxisRaw("5th Axis");
float delta = strum - _prevStrum;
if (_strumArmed)
{
if (delta >= _strumSensitivity) // > { OnStrumDown?.Invoke(); _strumArmed = false; }
else if (delta <= -_strumSensitivity) { OnStrumUp?.Invoke(); _strumArmed = false; }
}
// 重新激活一次当值变得稳定(delta又开始飘忽不安)时
if (!_strumArmed && Mathf.Abs(delta) < 0.05f)
{
_strumArmed = true;
}
_prevStrum = strum;
}
(未知部分请在问题中补充)
评论 (0)