Пример #1
0
    // ========================================================================== //

    /* public - [Do] Function
     * 외부 객체가 호출(For External class call)*/

    public void DoClick_RadioButton()
    {
        _pSpriteTarget.spriteName = _strSpriteName_OnPress;

        List <CUIButtonRadio> listButtonRadio = g_mapButtonRadioList[_iRadioGroup];

        for (int i = 0; i < listButtonRadio.Count; i++)
        {
            CUIButtonRadio pUIButtonRadio = listButtonRadio[i];
            if (pUIButtonRadio != this)
            {
                if (pUIButtonRadio._pButtonTarget == null)
                {
                    pUIButtonRadio.EventOnAwake();
                }

                if (pUIButtonRadio._pButtonTarget.isEnabled == false)
                {
                    continue;
                }

                pUIButtonRadio._pSpriteTarget.spriteName = pUIButtonRadio._strSpriteName_OnNormal;
            }
        }

        g_mapButtonRadioSelect[_iRadioGroup] = this;
    }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        CUIButtonRadio pTarget = target as CUIButtonRadio;

        GUILayout.Label(string.Format("Radio Group : {0}", pTarget._iRadioGroup));
        GUILayout.Label(string.Format("Radio Index : {0}", pTarget._iRadioIndex));
    }
    private void OnEnable()
    {
        if (Application.isPlaying)
        {
            return;
        }

        _listButtonSibling.Clear();
        CUIButtonRadio pTarget = target as CUIButtonRadio;

        GameObject pObject_Parents = pTarget.transform.parent.gameObject;

        pObject_Parents.GetComponentsInChildren <CUIButtonRadio>(_listButtonSibling);
        _listButtonSibling.Sort(Comparer_BySiblingIndex);

        for (int i = 0; i < _listButtonSibling.Count; i++)
        {
            _listButtonSibling[i]._iRadioGroup = pObject_Parents.GetInstanceID();
            _listButtonSibling[i]._iRadioIndex = i;
        }
    }
    private int Comparer_BySiblingIndex(CUIButtonRadio pObjectX, CUIButtonRadio pObjectY)
    {
        int iSiblingIndexX = pObjectX.transform.GetSiblingIndex();
        int iSiblingIndexY = pObjectY.transform.GetSiblingIndex();

        if (pObjectX.transform.parent != pObjectY.transform.parent)
        {
            iSiblingIndexX = pObjectX.transform.parent.GetSiblingIndex();
            iSiblingIndexY = pObjectY.transform.parent.GetSiblingIndex();
        }

        if (iSiblingIndexX < iSiblingIndexY)
        {
            return(-1);
        }
        else if (iSiblingIndexX > iSiblingIndexY)
        {
            return(1);
        }
        else
        {
            return(0);
        }
    }