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