Ejemplo n.º 1
0
    public static void UnbindPointItem(RedPointItem pointItem)
    {
        if (_instance == null)
        {
            return;
        }

        RedPointManager.INSTANCE.UnbindPointItem_Internal(pointItem);
    }
Ejemplo n.º 2
0
    private void BindPointItem_Internal(GameObject obj, string key, bool forceBind = false)
    {
        if (string.IsNullOrEmpty(key) || obj == null)
        {
            return;
        }

        List <RedPointItem> itemList = null;

        if (_redPointItemMap.ContainsKey(key))
        {
            itemList = _redPointItemMap[key];
        }
        else
        {
            itemList = new List <RedPointItem>();
            _redPointItemMap.Add(key, itemList);
        }

        RedPointItem pointItem = obj.GetComponent <RedPointItem>();

        if (pointItem == null)
        {
            pointItem = obj.AddComponent <RedPointItem>();
        }
        if (!pointItem.isWarmed)
        {
            pointItem.key            = key;
            pointItem.isBindPendding = true;
            return;
        }
        if (pointItem.isBind && !forceBind)
        {
            return;
        }
        if (forceBind && pointItem.isBind)
        {
            UnbindPointItem_Internal(pointItem);
        }

        pointItem.key    = key;
        pointItem.isBind = true;
        itemList.Add(pointItem);
    }
Ejemplo n.º 3
0
    private void UnbindPointItem_Internal(RedPointItem pointItem)
    {
        if (pointItem == null || !pointItem.isBind)
        {
            return;
        }

        if (!_redPointItemMap.ContainsKey(pointItem.key))
        {
            return;
        }

        pointItem.isBind = false;
        var itemList = _redPointItemMap[pointItem.key];

        for (int i = 0; i < itemList.Count; i++)
        {
            if (itemList[i].GetInstanceID() == pointItem.GetInstanceID())
            {
                itemList.RemoveAt(i);
                break;
            }
        }
    }