/// <summary> /// 创建一个头顶名称 /// </summary> /// <param name="entry">实体</param> /// <param name="entryId">实体ID</param> /// <param name="text">内容</param> /// <param name="col">颜色</param> /// <returns></returns> public static TopName CreateTopName(GameObject entry, int entryId, string text, Color col) { if (SFGFxMovieManager.Instance == null) { Trace.LogError("SFGFxMovieManager没有初始化,请不要在Awake或Start中创建!"); return(null); } if (!bInit) { Trace.LogError("GfxLableManager必须初始化!"); return(null); } //有可能TopNameMovie还没有创建完成. if (TopNameMovie.Instance == null) { //Trace.LogError("TopNameMovie尚未创建完成,请等待创建完成后再调用。"); return(null); } if (m_TopNameMap.ContainsKey(entryId)) { Trace.LogWarning(entryId + "已经有头顶名,返回已有的实例"); return(m_TopNameMap[entryId]); } U3D_Render.EntityView objev = EntityFactory.getEntityViewByID(entryId); if (!objev.IsValid) { Trace.LogWarning("实体视图无效!id=" + entryId); return(null); } ENTITY_TYPE entityType = objev.Type; MovieNode trs = new MovieNode(); TopName t = GetTopName(ref trs); if (t == null) { return(t); } t.Init(entry, entryId, text, col); t.CreateBillBorad(); t.ChangeMovieNode(trs); m_TopNameMap.Add(entryId, t); index++; ChangeMask(EntityFactory.getEntityViewByID(entryId), true); //if (!go) //{ // go = GameObject.CreatePrimitive(PrimitiveType.Plane); // go.renderer.material.SetTexture("_MainTex", TopNameMovie.TopNameRenderTexture); //} return(t); }
/// <summary> /// 预热 /// </summary> public static void PreWarmTopName() { if (bPreWarmTopName) { return; } bPreWarmTopName = true; for (int i = 0; i < CacheCout; i++) { TopName tp = CreateTopNameInstance(); tp.Init(CacheTopNameRoot, -1, "temp", Color.white); tp.CreateBillBorad(); tp.ChangeParent(CacheTopNameRoot.transform); tp.SetEnable(false); m_CacheTopName.Enqueue(tp); } }