无法移动Rigidbody2D

时间:2015-05-01 02:26:37

标签: unity3d 2d unityscript

我似乎无法让我的家伙左右移动。我正在为它做的代码,我认为是正确的。他附有一个Rigidbody2D组件,并附有脚本。

我认为这可能与InputManager设置有关,但一切看起来都不错。

Edge collider注册为“Ground”标签。我将检查器面板中的那些公共变量的值设置为10。

function OnCollisionEnter2D(coll: Collision2D){
    if (coll.gameObject.tag == "Ground"){
        canJump = true;
    }
}

function OnCollisionExit2D(coll: Collision2D){
    if (coll.gameObject.tag == "Ground"){
        canJump = false;
    }
}

function Update(){
    Debug.Log("this: "+canJump);
}

function FixedUpdate () {
    var movementInput : float = Input.GetAxis("Horizontal");

    if (canJump){
        //move left or right whilst jumping
        characterBod.AddForce(new Vector2(Time.deltaTime * hzSpeed * movementInput, 0), ForceMode2D.Impulse);
    }else{
    //move left or right whilst on ground
        canJump = false;
        characterBod.AddForce(new Vector2(Time.deltaTime * hzJumpSpeed * movementInput, 0), ForceMode2D.Force);
    }
    if (Input.GetButton("Jump") && canJump){
        characterBod.velocity = Vector2(0, jumpVelocity);
    }
}

0 个答案:

没有答案