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); }
//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]); } }
//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); }
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; } }
//(对外接口)设置某个叶子小红点是否可见 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); }
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))) }