private WallRide DetectWall() { if (Physics2D.BoxCast(self.position + new Vector3(box2D.size.x / 2, box2D.size.y / 2, 0), new Vector2(shellThickness * (wallRide == WallRide.None ? 1.1f : 3f), box2D.size.y * .85f), 0, Vector3.right, shellThickness, wallSlideMask)) { wallRide = WallRide.Right; canAttack = true; } else if (Physics2D.BoxCast(self.position + new Vector3((-box2D.size.x / 2), box2D.size.y / 2, 0), new Vector2(shellThickness * (wallRide == WallRide.None ? 1.1f : 3f), box2D.size.y * .85f), 0, Vector3.left, shellThickness, wallSlideMask)) { wallRide = WallRide.Left; canAttack = true; } else { wallRide = WallRide.None; } return(wallRide); }
public void Reset() { hasTheBall = false; rb2D.velocity = Vector2.zero; jumpTracker = 0; airDashTracker = 0; accelerationTracker = 0; wallJumpTracker = 0; slideTracker = 0; attacking = false; jumping = false; wallJumping = false; damaged = false; wallRide = WallRide.None; hasTheBallTrail.SetActive(false); }