Пример #1
0
        /// <summary>
        /// 创建头顶信息实例
        /// </summary>
        /// <param name="objev"></param>
        /// <param name="entityID"></param>
        /// <param name="host"></param>
        /// <param name="ptr"></param>
        /// <param name="nLen"></param>
        /// <returns></returns>
        public UTopName CreateTopName(EntityView objev, IntPtr ptr, int nLen)
        {
            if (!bInit)
            {
                Trace.LogError("UTopNameManager必须初始化!");
                return(null);
            }
            if (EntityView.isNullOrEmpty(objev))
            {
                Trace.LogWarning("TopName--实体视图无效!");
                return(null);
            }
            int entityID = objev.ID;

            //如果表里面已含,则更新信息并返回
            if (m_TopNameMap.ContainsKey(entityID))
            {
                Trace.LogWarning(entityID + "已经有TopName,返回已有的实例");
                UTopName ut = m_TopNameMap[entityID];
                //接受逻辑层信息并更新
                SetNameInfo(ptr, nLen, ut);
                return(ut);
            }
            //分配一个节点
            TopNameNode bcn = new TopNameNode();
            UTopName    utn = GetTopName(ref bcn);

            if (null == utn)
            {
                return(null);
            }
            utn.CreatBillBoard();
            utn.ChangeCanvasNode(bcn);
            utn.Init(objev);

            m_TopNameMap.Add(entityID, utn);

            SetNameInfo(ptr, nLen, utn);

            if (objev.Property)
            {
                int nMatchType = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_MATCHTYPE);
                int nRankScore = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_RANKSCORE);
                int nRankGrade = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_RANKGRADE);
                int nRankIcon  = GameLogicAPI.getRankIconIDByGrade(nMatchType, nRankGrade);
                if (nRankIcon > 0)
                {
                    utn.SetRankLv(nRankIcon);
                }
                int nSex = objev.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_SEX);
                utn.SetSex(nSex);
            }

            return(utn);
        }
Пример #2
0
 //预加载
 public void PreWarmTopName()
 {
     if (bPreWarmTopName)
     {
         return;
     }
     bPreWarmTopName = true;
     for (int i = 0; i < TopNameCacheCount; i++)
     {
         TopNameNode canvNode = new TopNameNode();
         if (!AllocTopNamePos(ref canvNode))
         {
             continue;
         }
         UTopName utn = InstanceUTopName(canvNode);
         utn.CreatBillBoard();
         utn.ChangeParent(CacheTopNameRoot.transform);
         utn.Init(null);
         utn.ChangeParent(CacheTopNameRoot.transform);
         utn.SetEnable(false);
         utn.ChangeCanvasNode(canvNode);
         m_CacheTopName.Enqueue(utn);
     }
 }