void Update()
    {
        //Vertical Movement
        bool playerForward  = Input.GetKey(KeyCode.W);
        bool playerBackward = Input.GetKey(KeyCode.S);

        if (playerForward)
        {
            transform.position += transform.forward * moveSpeed;
        }

        else if (playerBackward)
        {
            transform.position -= transform.forward * moveSpeed;
        }

        //Horizontal Movement
        bool playerRight = Input.GetKey(KeyCode.D);
        bool playerLeft  = Input.GetKey(KeyCode.A);

        if (playerRight)
        {
            transform.position += transform.right * moveSpeed;
        }

        else if (playerLeft)
        {
            transform.position -= transform.right * moveSpeed;
        }

        //Horizontal Mouse Look
        float mouseX = Input.GetAxis("Mouse X");

        transform.Rotate(0f, mouseX * sensitivity, 0f);

        //Jumping
        bool playerJump = Input.GetKeyDown(KeyCode.Space);

        if (playerJump && isGrounded(distance))
        {
            rb.AddForce(transform.up * jumpForce);
        }

        //Toggle Perspective
        bool togglePerspective = Input.GetKeyDown(KeyCode.V);

        if (togglePerspective)
        {
            if (mainCamera.parent == firstPersonHolder)
            {
                mainCamera.SetParent(thirdPersonHolder);
            }

            else
            {
                mainCamera.SetParent(firstPersonHolder);
            }
        }

        mainCamera.position = mainCamera.parent.position;

        //Control Gun
        if (gun != null)
        {
            bool shootGun = Input.GetKey(KeyCode.Mouse0);

            if (shootGun)
            {
                gun.Shoot();
            }

            bool aimGun  = Input.GetKeyDown(KeyCode.Mouse1);
            bool idleGun = Input.GetKeyUp(KeyCode.Mouse1);

            if (aimGun && !gun.isAiming)
            {
                gun.ToggleAim();
            }

            if (idleGun && gun.isAiming)
            {
                gun.ToggleAim();
            }
        }

        //Control Wall
        if (equip != null && equip.GetComponent <Wall>() != null)
        {
            bool buildWall = Input.GetKeyDown(KeyCode.Mouse0);

            if (buildWall)
            {
                equip.GetComponent <Wall>().Build(mainCamera);
            }
        }

        //Equip
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            Equip(0);
        }

        if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            Equip(1);
        }

        if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            Equip(2);
        }

        if (Input.GetKeyDown(KeyCode.F))
        {
            Equip(-1);
        }

        //Death
        if (health <= 0)
        {
            for (int i = 0; i < Inventory.SIZE; i++)
            {
                pi.Drop(i);
            }

            GameObject sp = GameObject.Find("Spawn Point");
            sp.GetComponent <SpawnPoint>().Spawn();
            Destroy(gameObject);
        }
    }