private void OnTriggerEnter(Collider other)
    {
        // handles player first enter position change
        _firstEnter = true;

        // find all the planet inside the star
        if (other.gameObject.tag.Contains("|Planet|"))
        {
            _planetNum++;
            planetList.Add(other.gameObject);
            print(other.gameObject.name);
        }
        else if (other.gameObject.tag.Contains("|Player|"))
        {
            // notify camera to turn to isoview

            if (_planetNum == 0)
            {
                handleZeroPlanetIsoView();
            }

            print("player ENTER gravity field -- " + transform.parent.name);

            _isIsometricStarView = true;
            OnIsometricStarView?.Invoke(_isIsometricStarView, transform);
        }
    }
    private void OnTriggerExit(Collider other)
    {
        // _isExitingField = true;

        if (!other.gameObject.tag.Contains("|Player|"))
        {
            return;
        }
        print("player EXIT gravity field -- " + transform.parent.name);
        _isIsometricStarView = false;
        OnIsometricStarView?.Invoke(_isIsometricStarView, transform);

        HandleGravityEdgeWhenExit();
    }