private void RefreshMember()
    {
        inviteButton.SetInteractable(!moduleAwakeMatch.HasTeamMember);
        inviteButton.SafeSetActive(inviteButton.IsInteractable());
        InfoPanel[1].SafeSetActive(moduleAwakeMatch.HasTeamMember);

        if (moduleAwakeMatch.matchInfos == null)
        {
            return;
        }

        if (teamPlayer)
        {
            teamPlayer.Destroy();
            teamPlayer = null;
        }
        if (teamPlayerPet)
        {
            teamPlayerPet.Destroy();
            teamPlayerPet = null;
        }
        if (m_memberLoadCoroutine != null)
        {
            Level.current.StopCoroutine(m_memberLoadCoroutine);
            m_memberLoadCoroutine = null;
        }
        if (m_masterSetPosCoroutine != null)
        {
            Level.current.StopCoroutine(m_masterSetPosCoroutine);
            m_masterSetPosCoroutine = null;
        }

        for (var i = 0; i < moduleAwakeMatch.matchInfos.Length; i++)
        {
            if (moduleAwakeMatch.matchInfos[i].roleId != modulePlayer.id_)
            {
                CreatTeamCreature(moduleAwakeMatch.matchInfos[i], i);
            }
            else
            {
                m_masterSetPosCoroutine = global::Root.instance.StartCoroutine(SetMasterPosition(i));
            }

            var binder = new RoleInfoBinder(InfoPanel[i]);
            binder.Bind(moduleAwakeMatch.matchInfos[i]);
        }

        Util.SetText(levelText, moduleAwakeMatch.matchInfos[0].level.ToString());
        Util.SetText(captainName, moduleAwakeMatch.matchInfos[0].roleName);

        RefreshButtonState();
    }
    private void RfreshUILayout()
    {
        for (var i = 0; i < roleInfoBorad.Length; i++)
        {
            roleInfoBorad[i].SafeSetActive(false);
        }

        for (var i = 0; i < moduleSelectRole.roleList?.Length; i++)
        {
            if (i >= roleInfoBorad.Length)
            {
                break;
            }
            var index = i;
            roleInfoBorad[i].SafeSetActive(true);
            RoleInfoBinder.Bind(roleInfoBorad[i], moduleSelectRole.roleList[i], () => { OnDeleteRole(index); });
        }

        if (!createButton)
        {
            return;
        }

        if (moduleSelectRole.RoleCount < roleInfoBorad.Length)
        {
            createButton.gameObject.SetActive(true);
            if (roleInfoBorad[moduleSelectRole.RoleCount])
            {
                createButton.transform.parent.position = roleInfoBorad[moduleSelectRole.RoleCount].position;
            }
        }
        else
        {
            createButton.gameObject.SetActive(false);
        }
    }