Unity2d垂直移动逻辑错误

时间:2014-11-19 09:30:27

标签: unity3d 2d

所以,我水平运动的代码没问题,而且完美无缺。 问题是我为垂直移动添加了一些代码,而且我的键几乎与我想要完成的相反。

我的右键让我的角色上升,我的上键使我的角色正确等等。

感谢任何帮助。

使用UnityEngine; 使用System.Collections;

public class CharacterMovement:MonoBehaviour {     public float MaxSpeed = 10f;

// Use this for initialization
void Start () {

}

// Update is called once per frame
void FixedUpdate () 
{
    float move = Input.GetAxis ("Horizontal");
    rigidbody2D.velocity = new Vector2 (move * MaxSpeed, rigidbody2D.velocity.y);

    float moveV = Input.GetAxis ("Vertical");
    rigidbody2D.velocity = new Vector2 (moveV * MaxSpeed, rigidbody2D.velocity.x);


}

1 个答案:

答案 0 :(得分:0)

Y是垂直坐标,但您在水平调用中引用它。你只需要交换.x和.y。

编辑: 对不起我的回答,你需要交换x和为什么,还要交换你的Vector参数,所以:

void FixedUpdate () 
{
    float move = Input.GetAxis ("Vertical");
    rigidbody2D.velocity = new Vector2 (moveV * MaxSpeed, rigidbody2D.velocity.y);

    float moveV = Input.GetAxis ("Horizontal");
    rigidbody2D.velocity = new Vector2 (rigidbody2D.velocity.x, move * MaxSpeed);
}