所以,我水平运动的代码没问题,而且完美无缺。 问题是我为垂直移动添加了一些代码,而且我的键几乎与我想要完成的相反。
我的右键让我的角色上升,我的上键使我的角色正确等等。
感谢任何帮助。
使用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);
}
答案 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);
}