/// <summary> /// 增加地图元素 /// </summary> /// <param name="entity"></param> private void AddMapElement(UInt64 guid, EntityCampType type, float x, float y, float z) { if (!mInited) { return; } int index = (int)type; if (index <= (int)EntityCampType.CampTypeNull) { return; } UIMiniMapElement element = GetMapElement(guid); if (element == null) { element = CreateMapElement(guid, type, x, y, z); if (element == null) { return; } mMapElementDic.Add(guid, element); EventCenter.Broadcast(EGameEvent.eGameEvent_ChangeMapState); } }
private bool mInited = false; //是否已经初始化 /// <summary> /// 增加地图元素 /// </summary> /// <param name="entity"></param> private void AddMapElement(UInt64 guid, EntityCampTypeEnum type, float x, float y, float z) { if (!mInited)//如果已经初始化完成 { return; } int index = (int)type;// 获取添加元素的阵营类型 if (index <= (int)EntityCampTypeEnum.Null) { return; //判断阵营是否是空 } UIMiniMapElement element = GetMapElement(guid); //从mMapElementDic中获取地图元素 if (element == null) { element = CreateMapElement(guid, type, x, y, z);//创建地图元素图标 if (element == null) { return; } mMapElementDic.Add(guid, element); EventCenter.Broadcast((Int32)GameEventEnum.GameEvent_ChangeMapState); } }
/// <summary> /// 获得Ientity所对应的地图元素 /// </summary> /// <param name="entity"></param> /// <returns></returns> private UIMiniMapElement GetMapElement(UInt64 guid) { if (mMapElementDic == null || mMapElementDic.Count == 0) { return(null); } UIMiniMapElement element = null; mMapElementDic.TryGetValue(guid, out element); return(element); }
/// <summary> /// 删除地图元素 /// </summary> ///</param> private void DestroyMapElement(UInt64 guid) { UIMiniMapElement element = GetMapElement(guid); if (element == null) { return; } GameObjectPool.Instance.ReleaseGO(element.resPath, element.gameObject, PoolObjectType.POT_MiniMap); mMapElementDic.Remove(guid); EventCenter.Broadcast(EGameEvent.eGameEvent_ChangeMapState); }
private UIMiniMapElement LoadElementResource(string path, UInt64 guid, float x, float y, float z) { GameObject obj; obj = GameObjectPool.Instance.GetGO(path); obj.transform.parent = mMapGround.transform; obj.transform.localScale = Vector3.one; UIMiniMapElement element = obj.GetComponent <UIMiniMapElement>(); element.resPath = path; element.CreateMiniMapElement(guid, x, y, z); obj.SetActive(false); obj.SetActive(true); return(element); }
/// <summary> /// 更新地图元素 /// </summary> /// <param name="entity"></param> private void UpdateMapElement(UInt64 guid, EntityCampType type, float x, float y, float z) { int index = (int)type; if (index <= (int)EntityCampType.CampTypeKind) { return; } UIMiniMapElement element = GetMapElement(guid); if (element != null) { element.UpdatePosDirect(x, y, z); } }
/// <summary> /// 更新地图元素 /// </summary> /// <param name="entity"></param> private void UpdateMapElement(UInt64 guid, EntityCampTypeEnum type, float x, float y, float z) { int index = (int)type; //获取实体阵营类型 if (index <= (int)EntityCampTypeEnum.Kind) //全敌对,全和平类型元素不更新 { return; } UIMiniMapElement element = GetMapElement(guid);//获得Ientity所对应的地图元素 从mMapElementDic获取 if (element != null) { element.UpdatePosDirect(x, y, z);// 将对象直接设置到目标点 } }
/// <summary> /// 删除地图元素 /// </summary> ///</param> private void DestroyMapElement(UInt64 guid) { //根据id得到地图元素 UIMiniMapElement element = GetMapElement(guid); if (element == null) { return; } //将小地图类型的对象池中的所有对象做无效处理 ObjectPool.Instance.ReleaseGO(element.resPath, element.gameObject, PoolObjectTypeEnum.MiniMap); //从字典中移除此元素 mMapElementDic.Remove(guid); // 广播此消息 然后ChangeMapState被调用,将图片禁用 EventCenter.Broadcast((Int32)GameEventEnum.GameEvent_ChangeMapState); }