【问题标题】:Unity2d vertical movement logical errorunity2d垂直移动逻辑错误
【发布时间】: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);


}

【问题讨论】:

    标签: unity3d 2d


    【解决方案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);
    }
    

    【讨论】:

    • 这不行,我这样做时左右键不起作用,并且角色以东北方式向上移动,以西南方式向下移动。
    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 2014-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多