public EditorStarMapArea GetPreviewArea(EditorPlanet planet, ulong areaId) { if (planet == null) { return(null); } if (m_PreviewStarMap != null) { EditorStarMapArea[] areas = planet.arealist; if (areas != null && areas.Length > 0) { for (int iArea = 0; iArea < areas.Length; iArea++) { EditorStarMapArea starMapArea = areas[iArea]; if (starMapArea == null) { continue; } if (starMapArea.areaId == areaId) { return(starMapArea); } } } } return(null); }
/// <summary> /// 设置当前星域数据 /// </summary> /// <param name="gamingmapId"></param> /// <param name="data"></param> /// <param name="isCurrentPoint"></param> public void SetData(uint gamingmapId, EditorStarMapArea data, bool isCurrentPoint) { Initialize(); m_Data = data; SetName($"area_name_{gamingmapId}_{m_Data.areaId}"); SetLocationVisible(isCurrentPoint); SetSelectState(isCurrentPoint); }
private void CreateElement(EditorArea editorArea, EditorPlanet planet) { GameObject planetArea = GameObject.Instantiate(m_Panel.m_PlanetAreaElementPrefab); planetArea.SetActive(true); planetArea.transform.SetParent(transform); planetArea.transform.localPosition = Vector3.zero; PlanetAreaElement planetElement = planetArea.GetComponent <PlanetAreaElement>(); if (planetElement != null) { EditorStarMapArea starMapArea = m_Panel.m_Root.GetPreviewArea(planet, editorArea.areaId); planetElement.Init(editorArea, starMapArea); m_PlanetAreas.Add(planetElement); } }
public void Init(EditorArea area, EditorStarMapArea starMapArea) { if (area == null) { return; } if (rectTrans == null) { rectTrans = GetComponent <RectTransform>(); } if (starMapArea != null) { m_Res = starMapArea.area_res; rectTrans.anchoredPosition = starMapArea.position.ToVector2(); m_Resobj = StarMapEditorRoot.FindResAsset(m_Res); } m_AreaData = area; gameObject.name = area.areaName; if (m_Tip == null) { Transform tipTrans = transform.Find("tip"); if (tipTrans != null) { m_Tip = tipTrans.gameObject.GetComponent <Text>(); } } if (m_Tip != null) { m_Tip.text = ""; EditorLeap[] leaps = area.leapList; if (leaps != null && leaps.Length > 0) { EditorLeap leap = leaps[0]; if (leap.leapType == (int)LeapType.Main) { m_Tip.text = "主"; } else if (leap.leapType == (int)LeapType.Child) { m_Tip.text = "副"; } } } }
private void SaveArea(EditorGamingMap gamingData, List <EditorStarMapArea> areaList, ref ulong areaId) { if (gamingData == null || gamingData.areaList == null || gamingData.areaList.Length <= 0) { return; } EditorArea[] editorAreas = gamingData.areaList; for (int iArea = 0; iArea < editorAreas.Length; iArea++) { EditorArea editorArea = editorAreas[iArea]; if (editorArea == null) { continue; } EditorStarMapArea starMapArea = new EditorStarMapArea(); areaList.Add(starMapArea); starMapArea.areaId = editorArea.areaId; starMapArea.areaType = editorArea.areaType; starMapArea.areaName = editorArea.areaName; PlanetAreaElement areaElement = m_PlanetPanel.GetElement(gamingData.gamingmapId, editorArea.areaId); if (areaElement != null) { starMapArea.area_res = areaElement.m_Res; starMapArea.childrenAreaList = editorArea.childrenAreaList; if (editorArea.leapList != null && editorArea.leapList.Length > 0) { starMapArea.area_leap_type = editorArea.leapList[0].leapType; } starMapArea.position = new EditorPosition2D(areaElement.GetPosition()); } if (editorArea.areaType == (int)AreaType.Titan) { if (areaId > 0) { Debug.LogError(gamingData.gamingmapName + "存在多个泰坦区域:" + editorArea.areaId); } else { areaId = editorArea.areaId; } } } }