コード例 #1
0
        /// <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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        /// <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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        /// <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);
            }
        }
コード例 #7
0
        /// <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);// 将对象直接设置到目标点
            }
        }
コード例 #8
0
        /// <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);
        }