public void CheckGround()
        {
            RaycastHit hit;

            if (!Physics.Raycast(transform.position, Vector3.down, out hit, 2f, LayerMask.GetMask("Platform")))
            {
                rb.isKinematic = false;
                isGrounded     = false;
                return;
            }

            isGrounded      = true;
            currentPlatform = hit.collider.GetComponent <PlatformController>();
        }
        public void Respawn()
        {
            currentPlatform    = null;
            transform.position = lastPosition = startPosition;
            transform.rotation = Quaternion.identity;
            rb.MovePosition(transform.position);
            rb.isKinematic = true;
            gameObject.SetActive(true);
            isMoving      = false;
            moveDirection = Vector3.zero;

            if (touch != null)
            {
                touch.ResetController();
            }

            CheckGround();
        }