unity2d垂直移动逻辑错误
Posted
技术标签:
【中文标题】unity2d垂直移动逻辑错误【英文标题】:Unity2d vertical movement logical error 【发布时间】:2015-01-16 18:11:46 【问题描述】:所以,我的水平移动代码没问题,而且运行良好。 问题是我为垂直移动添加了一些代码,而我的键几乎与我想要完成的相反。
我的右键让我的角色向上,我的向上键让我的角色向右等等。
感谢任何帮助。
使用 UnityEngine; 使用 System.Collections;
公共类 CharacterMovement : MonoBehaviour 公共浮点 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】: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);
【讨论】:
这不行,我这样做时左右键不起作用,并且角色以东北方式向上移动,以西南方式向下移动。以上是关于unity2d垂直移动逻辑错误的主要内容,如果未能解决你的问题,请参考以下文章