pav*_*mar 1 unity-game-engine unityscript
我正在开发 Unity2d Sprite,但出了点问题:在我的代码中,当我按下跳跃按钮时,我的角色会像传送一样跳跃,它向上方向移动得非常快。重力为 9,我的Rigidbody2D质量为 1。我的代码是这样的:
if(isGrounded == true && moveH == 0) {
if (Input.GetKeyDown(KeyCode.J)) {
anim.SetBool("str_jump", true);
//rgBody.velocity = new Vector2(0,jumpHeight);
//rgBody.AddForce(Vector2.up * jumpHeight);
transform.position = new Vector2(transform.position.x,
transform.position.y * jumpHeight);
isGrounded = false;
}
}
Run Code Online (Sandbox Code Playgroud)
如果你的跳跃太高,你必须使用一个变量来修改跳跃的高度。在您的例子中,您使用jumpHeight作为变量来修改跳跃的高度。
减少jumpHeight应该可以解决你的问题。请注意,如果jumpHeight声明为 public ( public float jumpHeight;),则必须从编辑器或函数中更改变量,因为它不会使用声明时分配给它的编号。它将使用编辑器分配给它的任何内容。
例如,当您在编辑器中将public float jumpHeight = 4;值设置为 but时,将用作值 not 。004
另外你还必须使用rgBody.AddForce(Vector2.up * jumpHeight);. 取消注释,然后删除该transform.position = new Vector2(transform.position.x,transform.position.y *jumpHeight);代码行。
如果这不能解决您的问题,那么您必须使用完整的代码更新您的问题。
| 归档时间: |
|
| 查看次数: |
1366 次 |
| 最近记录: |