繁体   English   中英

适用于Android的Input.GetAxis

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM