我似乎无法让我的家伙左右移动。我正在为它做的代码,我认为是正确的。他附有一个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);
}
}