예제 #1
0
        public void RefreshRedPointVisible(uint red_point_id)
        {
            DBRedPoint.DBRedPointItem item = mDBRedPoint.GetRedPointItem(red_point_id);
            if (item == null)
            {
                return;
            }
            List <uint> child_array = item.ChildIds;

            if (child_array == null)
            {
                return;
            }
            bool is_visible = false;

            for (int index = 0; index < child_array.Count; ++index)
            {
                uint child_red_point_id = child_array[index];
                DBRedPoint.DBRedPointItem child_item = mDBRedPoint.GetRedPointItem(child_red_point_id);
                if (child_item != null && child_item.IsVisible)
                {
                    is_visible = true;
                }
            }
            SetRedPointVisible_inner(red_point_id, is_visible);
        }
예제 #2
0
//is_visible@param 红点是否可见

        void SetRedPointVisible_inner(uint red_point_id, bool is_visible)
        {
            DBRedPoint.DBRedPointItem item = mDBRedPoint.GetRedPointItem(red_point_id);
            if (item == null)
            {
                return;
            }
            if (item.IsVisible == is_visible)
            {
                return;
            }
            item.IsVisible = is_visible;
            if (item.obj != null)
            {
                item.obj.SetActive(is_visible);
                //GameDebug.LogError(string.Format("SetRedPointVisible_inner cur_name = {0} is_visible = {1}", cur_name, tostring(is_visible)))
            }
            if (item.ParentIds == null)
            {
                //没有父节点
                return;
            }

            List <uint> parent_array = item.ParentIds;

            for (int index = 0; index < parent_array.Count; ++index)
            {
                RefreshRedPointVisible(parent_array[index]);
            }
        }
예제 #3
0
 //is_visible@param 红点是否可见
 public bool GetRedPointVisible(uint red_point_id)
 {
     DBRedPoint.DBRedPointItem item = mDBRedPoint.GetRedPointItem(red_point_id);
     if (item == null)
     {
         return(false);
     }
     return(item.IsVisible);
 }
예제 #4
0
 void OnUnbindRedPoint(uint red_point_id, GameObject game_obj)
 {
     DBRedPoint.DBRedPointItem item = mDBRedPoint.GetRedPointItem(red_point_id);
     if (item == null)
     {
         return;
     }
     if (item.obj == game_obj)
     {
         item.obj = null;
     }
 }
예제 #5
0
 //(对外接口)设置某个叶子小红点是否可见
 void SetRedPointVisible_out(uint red_point_id, bool is_visible)
 {
     DBRedPoint.DBRedPointItem item = mDBRedPoint.GetRedPointItem(red_point_id);
     if (item == null)
     {
         return;
     }
     if (item.ChildIds != null && item.ChildIds.Count > 0)
     {//不允许直接设定非叶子节点
         GameDebug.LogError("不允许直接设定非叶子节点 red_point_id = " + red_point_id);
         return;
     }
     SetRedPointVisible_inner(red_point_id, is_visible);
 }
예제 #6
0
        void OnRegisterRedPoint(uint red_point_id, GameObject game_obj)
        {
            if (game_obj == null)
            {
                return;
            }
            DBRedPoint.DBRedPointItem item = mDBRedPoint.GetRedPointItem(red_point_id);
            if (item == null)
            {
                return;
            }
            item.obj = game_obj;
            bool is_visible = item.IsVisible;

            item.obj.SetActive(is_visible);
            //GameDebug.LogError(string.Format("OnRegisterRedPoint game_obj_name = {0} cur_name = {1} is_visible = {2}", self.mTmpls[cur_name].obj.name, cur_name, tostring(is_visible)))
        }