C# Unity3D输入管理器和使用Input.GetAxis按钮

C# Unity3D输入管理器和使用Input.GetAxis按钮,c#,scripting,unity3d,C#,Scripting,Unity3d,我刚买了NGUI,需要一些帮助 现在,我的2D角色正在使用左右箭头向左和向右移动。 我在输入管理器中设置了左箭头和右箭头 我用NGUI制作了左右箭头按钮,并将它们添加到我的UI根目录中。 当我按下左箭头按钮时,如何使其模拟按下左箭头? 或者有没有办法将按下的左箭头按钮添加到输入管理器 我所要做的就是让左箭头按钮像我按下左箭头键和右箭头键一样 如果没有NGUI,还有其他方法也可以。 我只想在移动设备上按下左右按钮时能够左右移动。 我已经被困在这个问题上6个小时了,我想不出来 任何帮助都将不胜感激!

我刚买了NGUI,需要一些帮助

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

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

我所要做的就是让左箭头按钮像我按下左箭头键和右箭头键一样

如果没有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);
float h=Input.GetAxis(“水平”);
//“速度动画”参数设置为水平输入的绝对值。
动画设置浮动(“速度”,数学Abs(h));
//如果玩家正在改变方向(h与velocity.x的符号不同)或尚未达到maxSpeed。。。
if(h*刚体2d.velocity.x<最大速度)
// ... 给玩家添加一个力。
刚体2d.AddForce(矢量2.right*h*moveForce);
如果(数学Abs(刚体2D.velocity.x)>最大速度)
rigidbody2D.velocity=新矢量2(数学符号(rigidbody2D.velocity.x)*maxSpeed,rigidbody2D.velocity.y);

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

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

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

SendMessage(“OnPress”,true)

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

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

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