Пример #1
0
        /// <summary>
        /// 检查玩家位置
        /// </summary>
        private void DoCheckPlayerPos(bool forceCheck = false)
        {
            if (m_AreaLayerControllers == null || m_AreaLayerControllers.Count <= 0)
            {
                return;
            }
            DoUpdate_AreaRoot(false);
            bool canCheckPos = false;

            if (Time.time - m_LastCheckTime >= m_PositionCheckTime)
            {
                canCheckPos     = true;
                m_LastCheckTime = Time.time;
            }
            Vector3 playerGameWorldPosition = MapManager.GetInstance()._PlayerInfo.GameWorldPosition;

            for (int iLayer = 0; iLayer < m_AreaLayerControllers.Count; iLayer++)
            {
                AreaLayerController areaLayerController = m_AreaLayerControllers[iLayer];
                if (canCheckPos)
                {
                    areaLayerController.DoUpdate(playerGameWorldPosition, forceCheck);
                }
                areaLayerController.DoUnitUpdate();
            }
        }
Пример #2
0
 /// <summary>
 /// 初始化区域层
 /// </summary>
 private void InitAreaLayer()
 {
     if (m_AreaDetailInfo == null)
     {
         return;
     }
     if (m_AreaLayerControllers == null)
     {
         m_AreaLayerControllers = new List <AreaLayerController>();
     }
     AreaLayerInfo[] areaLayerInfos = m_AreaDetailInfo.AreaLayerInfos;
     if (areaLayerInfos != null && areaLayerInfos.Length > 0)
     {
         for (int iLayer = 0; iLayer < areaLayerInfos.Length; iLayer++)
         {
             AreaLayerInfo areaLayerInfo = areaLayerInfos[iLayer];
             if (areaLayerInfo == null)
             {
                 continue;
             }
             AreaLayerController areaLayerController = new AreaLayerController();
             areaLayerController.Initialize(areaLayerInfo, m_AreaDetailInfo.AssetInfos, this, areaLayerInfo.m_Offest);
             m_AreaLayerControllers.Add(areaLayerController);
         }
     }
 }