/// <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(); } }
/// <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); } } }