模拟键盘按钮以使用Input.GetAxis(" Horizo​​ntal")

时间:2015-04-18 17:20:43

标签: android input unity3d

我已经坚持了一段时间,我很感激你的帮助。

我需要将游戏移植到移动设备上,因此我需要更改控制方案以考虑点击。

我想继续使用Input.GetAxis(“Horizo​​ntal”),因为游戏是围绕它构建和平衡的,只要玩家点击屏幕的左/右侧,就可以模拟左/右击键。

这有可能吗?

的onUpdate:

touchMove()
 playerPosition.x += Input.GetAxis ("Horizontal") * playerVelocity;
 transform.position = playerPosition;

检查点击次数

private void touchMove()
     {
         if (Input.touchCount > 0)
         {
             Touch touch = Input.GetTouch(0);

             if (touch.position.x < Screen.width/2)
             {
                 //simulate a left keyboard push
             }
             else if (touch.position.x > Screen.width/2)
             {
                   //simulate a left keyboard push
             }
         }
     }

3 个答案:

答案 0 :(得分:1)

经过一些研究,似乎不可能有一个脚本将值设置为输入。

作为替代品,您可以使用自己的中间函数来考虑您想要的任何内容。

示例:

private int GetAxisHorizontal()
{
    // Get whatever should return your axis value
    if(Input.touches > 0) {... return value;} 
    else return Input.GetAxis("Horizontal");
}

你可以像正常的功能一样使用它:

playerPosition.x += GetAxisHorizontal() * playerVelocity;

答案 1 :(得分:0)

最后我添加了一个力来模拟运动和拖动来模拟减速。它是getAxis的一个非常好的替代品。

我需要更多地调整我的代码,但这应该适用于键盘和触摸输入。

答案 2 :(得分:0)

我做了r3x做了什么,this现在是我的播放器脚本。它具有移动和键盘控制,以及内置的多个绑定选项(更改KeyBindings类)。

http://pastebin.com/VGtnSP6f

(代码事物仍然有点儿)

编辑:只是想要注意,很多这个脚本都是获取键/鼠标位置并将其缩小以使其平滑。使/ 40f降低以增加平滑度。