예제 #1
0
    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);
    }
예제 #2
0
 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);
 }