Skip to content

[角色漂浮]跳跃问题 #1

Description

@RSzyg

角色移动时漂浮,跳跃会出现蜜汁bug,跳不高或者跳不起来,在地图浮板上十分明显,猜测是漂浮地面判断问题
可能的问题代码:

  1. 判断角色是否漂浮
// Judge if float over ground
if (isFloating)
{
	StopFloating();
	colliders =
		Physics2D.OverlapCircleAll(floatCheck.position, checkRadius, groundLayer);
	for (int i = 0; i < colliders.Length; i++)
	{
		if (colliders[i].gameObject != gameObject)
		{
			KeepFloating();
		}
	}
}
  1. 角色漂浮处理

// Handle floating
if (horizonMove != 0)
{
	// Make or keep player floating
	if ((isGrounded || isFloating) && !jump)
	{
		KeepFloating();
	}
}
else
{
	StopFloating();
}
private void KeepFloating()
{
	rb2d.gravityScale = 0f;
	isGrounded = false;
	isFloating = true;
	if (transform.position.y < floatPos)
	{
		transform.position += Vector3.up * floatSpeed;
	}
	if (transform.position.y > floatPos)
	{
		transform.position =
			new Vector3(transform.position.x, floatPos, transform.position.z);
	}
}
  1. 跳跃处理
// Handle jump
if (jump)
{
	if (isGrounded || isFloating)
	{
		isGrounded = false;
		StopFloating();
		rb2d.AddForce(Vector2.up * jumpForce);
	}
}

Metadata

Metadata

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions