Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d 无法移动刚体2d_Unity3d_2d_Unityscript - Fatal编程技术网

Unity3d 无法移动刚体2d

Unity3d 无法移动刚体2d,unity3d,2d,unityscript,Unity3d,2d,Unityscript,我似乎无法让我的人左右移动。我为它所做的代码,我认为是正确的。他附带了一个刚体2D组件和脚本 我认为这可能与InputManager设置有关,但看起来一切都很好 边缘碰撞器已注册为地面标记。我在inspector面板中将这些公共变量的值分别设置为10 function OnCollisionEnter2D(coll: Collision2D){ if (coll.gameObject.tag == "Ground"){ canJump = true; } } f

我似乎无法让我的人左右移动。我为它所做的代码,我认为是正确的。他附带了一个刚体2D组件和脚本

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

边缘碰撞器已注册为地面标记。我在inspector面板中将这些公共变量的值分别设置为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);
    }
}

你为什么使用ForceMode2D.Pulse?如果你把它改成强制会怎么样?