角色移动时漂浮,跳跃会出现蜜汁bug,跳不高或者跳不起来,在地图浮板上十分明显,猜测是漂浮地面判断问题
可能的问题代码:
- 判断角色是否漂浮
// 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();
}
}
}
- 角色漂浮处理
// 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);
}
}
- 跳跃处理
// Handle jump
if (jump)
{
if (isGrounded || isFloating)
{
isGrounded = false;
StopFloating();
rb2d.AddForce(Vector2.up * jumpForce);
}
}
角色移动时漂浮,跳跃会出现蜜汁bug,跳不高或者跳不起来,在地图浮板上十分明显,猜测是漂浮地面判断问题
可能的问题代码: