Unity覆盖`StandardAssetsScripts`

时间:2018-08-07 07:23:48

标签: c# unity3d input

我正在开发FPS游戏,并且正在使用标准资产随附的FPSController。我正在开发一个Gamepad控制器来控制手机游戏。

配置完控制器的所有输入后,我要替换以下代码:

if (!m_Jump)
{
   m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
}

代码应如下所示:

if(Application.platform == RuntimePlatform.Android)
{
    if (!m_Jump)
    {
        m_Jump = Input.GetButtonDown("Joystick A");
    }
}else{
    if (!m_Jump)
    {
        m_Jump = CrossPlatformInputManager.GetButtonDown("Jump");
    }
}
  

修改FPS Controller脚本并添加这些输入的最佳方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:5)

您可以以不需要编辑或添加任何附加代码的方式解决此问题。

在“编辑”>“项目设置”>“输入”下,您可以找到InputManager和“轴”。在这里,您将找到所有预定义的输入值及其相应的按钮。如果展开输入轴“跳转”,您将看到它具有一个名为“正按钮”的变量,该变量默认情况下为空格,而空的“替代按钮”。如果您将所需的按钮添加到替代按钮部分g,它将在按下游戏手柄上的相应按钮时触发CrossPlatformInputManager.GetButtonDown("Jump");操作。

如果您愿意扩展列表并添加自己的触发器,也可以。

输入管理器提供了对键盘和鼠标,操纵杆和游戏手柄的开箱即用支持,有关更多信息,请参见文档here

这样做的好处是不需要任何额外的代码或条件。这可能是最优化的方法