[英]Input.GetAxis for android
我正在创建一个迷宫游戏,目前我的android控件存在延迟。 我已经装好了计算机控件,可以向前移动,向左和向右旋转以及使用input.getaxis跳转。 现在,在android上,我创建了可以正常工作的按钮,但并不是我想要的。 它可以跳跃并转动我想要的方式,但无法正确移动。 有2个问题,一个是当我单击它时会稍微移动一点,然后我需要再次单击但我想按住它并且它会连续移动,第二个问题是当我转动角色时,角色不会移动corect的方式,它会一直打开带有input.getaxis的x轴,一切正常,但是我需要类似androdid的东西,这是我的代码:
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public float speed;
public float speedj;
Rigidbody rb;
static Animator anim;
void Start()
{
rb = GetComponent<Rigidbody>();
anim = GetComponent<Animator>();
}
public void Walk ()
{
anim.SetTrigger ("Walk");
rb.velocity = new Vector3 (0,0,7f);
}
public void Left ()
{
transform.Rotate(0,-90f,0);
}
public void Right ()
{
transform.Rotate(0,90f,0);
}
public void Jump ()
{
anim.SetTrigger ("Jump");
rb.velocity = new Vector3 (0,4f,0);
}
public void StopVelocity ()
{
rb.velocity = Vector3.zero;
transform.Translate(0,0,0);
}
void FixedUpdate ()
{
float x = Input.GetAxis ("Horizontal") * Time.deltaTime * speed;
float z = Input.GetAxis ("Vertical") * Time.deltaTime * speed;
transform.Translate (0,0,z);
transform.Rotate (0,x,0);
if(Input.GetKey(KeyCode.Space))
{
anim.SetTrigger ("Jump");
rb.velocity = new Vector3 (0,speedj,0);
}
}
}
因此,这是fixedUpdate函数是用于计算机的,其他函数是用于android的按钮的,我正在使用事件触发器来进行指针向上和向下事件的指针,请帮助我更改代码,以便它可以像适用于计算机的Input.getAxis一样适用于android谢谢!
“当我单击它时,它会移动一点,然后我需要再次单击,但是我想按住它,它将连续移动。”
在这里使用EventTrigger应该是最佳方法。 查看OnPointerDown(); 该函数应在每个帧中调用。 您应该将EventTrigger附加到该按钮上,以便它在手机上工作。
“当我转身时,角色不会移动核心方式。”
尝试使用“本地变换”向前移动。 即Transform.Forward() 。 它使您可以向前移动到之前设置的方向,“前向”始终是“归一化Vector3”。 以您当前的方式移动将使用世界坐标轴,您的旋转一点都不重要。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.