Unity3D输入管理器和输入按钮用于Input.GetAxis

时间:2014-06-11 21:39:57

标签: c# scripting unity3d

我刚买了NGUI并需要一些帮助...

现在我的2D角色左右箭头向左和向右移动。 我在输入管理器中设置左右箭头设置。

我用NGUI制作了左右箭头按钮,将它们添加到我的UI Root中。 当我按下左箭头按钮时,如何让它模仿按下的左箭头? 或者有没有办法将按下的左箭头按钮添加到输入管理器?

我想做的就是让左箭头键按下左箭头键,右键同样。

如果没有NGUI,还有另一种方法可以做到这一点。 我只想在移动设备上按下左右按钮时能够左右移动。 我现在已经坚持了6个小时,并且无法解决这个问题。

任何帮助将不胜感激! 谢谢!

下面举例说明我如何移动角色

    float h = Input.GetAxis("Horizontal");
    // The Speed animator parameter is set to the absolute value of the horizontal input.
    anim.SetFloat("Speed", Mathf.Abs(h));

    // If the player is changing direction (h has a different sign to velocity.x) or hasn't reached maxSpeed yet...
    if(h * rigidbody2D.velocity.x < maxSpeed)
    // ... add a force to the player.
    rigidbody2D.AddForce(Vector2.right * h * moveForce);

    if (Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed)
    rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y);

1 个答案:

答案 0 :(得分:0)

按钮的效果在OnPress (bool isDown)功能中处理。默认情况下,每次将鼠标悬停在按钮上时都会调用它。

如果我理解正确,您需要在按下键盘上的相关箭头键的同时模拟此悬停。

为了做到这一点,你必须自己调用OnPress (bool isDown)函数。尝试将此行添加到您的代码中:

SendMessage("OnPress", true);

这将在添加到游戏对象的所有脚本上调用OnPress函数。

要在特殊游戏对象上调用该函数,只需添加公共变量go,然后使用go.SendMessage("OnPress", true);

希望,这会有所帮助。 :)