private void CreateFixedStarElement(StarMapVO starVo) { GameObject starObj = GameObject.Instantiate(m_StarMapPrefab); starObj.SetActive(true); starObj.transform.SetParent(m_StarContainer); if (m_Root.m_PreviewStarMap != null) { //starObj.transform.position =m_Root.GetPreviewStarMapPos(starVo.FixedStarid); RectTransform starRect = starObj.GetComponent <RectTransform>(); if (starRect == null) { starRect = starObj.AddComponent <RectTransform>(); } starRect.anchoredPosition = m_Root.GetPreviewStarMapPos(starVo.FixedStarid); } else { starObj.transform.localPosition = Vector3.zero; } starObj.transform.localRotation = Quaternion.identity; starObj.transform.localScale = Vector3.one; FixedStarElement fixedElement = starObj.GetComponent <FixedStarElement>(); if (fixedElement != null) { fixedElement.Init(this, starVo); m_FixedStarElements.Add(fixedElement); } }
/// <summary> /// 初始化恒星id列表 /// </summary> public void LoadFixedStarIds() { if (m_FixedStarIds != null && m_FixedStarIds.Count > 0) { return; } if (m_Type != GamingMapType.mapDeepSpace) { return; } m_FixedStarIds = new List <int>(); m_FixedStarIdStrs = new List <string>(); EditorGamingMapData.LoadStarMapVO(); List <StarMapVO> starVoList = ConfigVO <StarMapVO> .Instance.GetList(); if (starVoList != null && starVoList.Count > 0) { for (int iStar = 0; iStar < starVoList.Count; iStar++) { StarMapVO starMapVo = starVoList[iStar]; if (starMapVo == null) { continue; } m_FixedStarIds.Add(starMapVo.FixedStarid); m_FixedStarIdStrs.Add(string.Format("{0}_{1}", starMapVo.FixedStarid, starMapVo.Name)); } } }
private void InitGamingMapDatas() { //if(m_AllGamingMaps == null) //{ // return; //} m_GamingMapDatas.Clear(); if (m_StarMapVoList != null && m_StarMapVoList.Count > 0) { for (int iStar = 0; iStar < m_StarMapVoList.Count; iStar++) { StarMapVO starVo = m_StarMapVoList[iStar]; if (starVo == null) { continue; } List <EditorGamingMap> editorGamings = new List <EditorGamingMap>(); for (int iAll = 0; iAll < m_AllGamingMaps.Count; iAll++) { EditorGamingMap editorGaming = m_AllGamingMaps[iAll]; if (editorGaming.belongFixedStar == starVo.FixedStarid) { editorGamings.Add(editorGaming); } } m_GamingMapDatas.Add(starVo.FixedStarid, editorGamings); } } }
public void ExportStarMap() { if (m_StarMapVoList != null && m_StarMapVoList.Count > 0) { EditorStarMap starMapData = new EditorStarMap(); List <EditorFixedStar> fixedStars = new List <EditorFixedStar>(); List <EditorPlanet> planets = new List <EditorPlanet>(); List <EditorStarMapArea> planetAreas = new List <EditorStarMapArea>(); FixedStarElement element = null; for (int iStar = 0; iStar < m_StarMapVoList.Count; iStar++) { StarMapVO starMapVo = m_StarMapVoList[iStar]; EditorFixedStar fixedStar = new EditorFixedStar(); fixedStars.Add(fixedStar); fixedStar.fixedStarId = starMapVo.FixedStarid; fixedStar.fixedStarName = starMapVo.Name; fixedStar.fixedStarRes = starMapVo.AssetName; fixedStar.relations = starMapVo.Relation_Id; element = m_StarMapMainPanel.GetElement(starMapVo.FixedStarid); if (element != null) { fixedStar.position = new EditorPosition2D(element.GetPosition()); } planets.Clear(); SavePlanet(planets, starMapVo.FixedStarid, planetAreas, fixedStar); fixedStar.planetList = planets.ToArray(); } starMapData.fixedStars = fixedStars.ToArray(); EditorGamingMapData.SaveStarMapToJson(starMapData); } }
public void Init(StarMapMainPanel panel, StarMapVO starVo) { m_StarMainPanel = panel; m_FixedStarid = starVo.FixedStarid; if (starVo != null) { gameObject.name = starVo.Name; } }
private void CreateFixedStarElement(StarMapVO starVo) { GameObject container = new GameObject(starVo.Name); container.transform.SetParent(transform); container.transform.localPosition = Vector3.zero; container.transform.localScale = Vector3.one; container.SetActive(false); PlanetContainer planetContainer = container.AddComponent <PlanetContainer>(); m_PlanetContains.Add(planetContainer); List <EditorGamingMap> gamingMaps = new List <EditorGamingMap>(); GetGamingMap(starVo.FixedStarid, gamingMaps); planetContainer.Init(starVo.FixedStarid, this, gamingMaps); }
/// <summary> /// 判断excel表中是否有新增或者删除 有的话刷新对应的 /// </summary> private void Check() { if (m_StarMapVoList == null || m_StarMapVoList.Count <= 0) { return; } ///判断是否有新增的 有的话添加 for (int iStar = 0; iStar < m_StarMapVoList.Count; iStar++) { StarMapVO starMapVo = m_StarMapVoList[iStar]; if (starMapVo == null) { continue; } PlanetContainer container = ExistElement(starMapVo.FixedStarid); if (container == null) { CreateFixedStarElement(starMapVo); } else { List <EditorGamingMap> gamingMaps = new List <EditorGamingMap>(); GetGamingMap(starMapVo.FixedStarid, gamingMaps); container.UpdateElements(gamingMaps); } } //判断是否有删除的 有的话删除 if (m_PlanetContains != null && m_PlanetContains.Count > 0) { for (int iStar = m_PlanetContains.Count - 1; iStar >= 0; iStar--) { PlanetContainer element = m_PlanetContains[iStar]; if (element == null || element.gameObject == null) { continue; } int fixedStarId = element.m_StarMapId; StarMapVO vo = ConfigVO <StarMapVO> .Instance.GetData(fixedStarId); if (vo == null) { GameObject.DestroyImmediate(element.gameObject); m_PlanetContains.Remove(element); } } } }
public void InitFixedStar(StarMapEditorRoot root, bool needReset = false) { m_Root = root; m_StarMapVoList = ConfigVO <StarMapVO> .Instance.GetList(); if (!needReset) { Check(); return; } Clear(); if (m_StarMapVoList != null && m_StarMapVoList.Count > 0) { for (int iStar = 0; iStar < m_StarMapVoList.Count; iStar++) { StarMapVO starVo = m_StarMapVoList[iStar]; CreateFixedStarElement(starVo); } } }
/// <summary> /// 判断excel表中是否有新增或者删除 有的话刷新对应的 /// </summary> private void Check() { if (m_StarMapVoList == null || m_StarMapVoList.Count <= 0) { return; } ///判断是否有新增的 有的话添加 for (int iStar = 0; iStar < m_StarMapVoList.Count; iStar++) { StarMapVO starMapVo = m_StarMapVoList[iStar]; if (starMapVo == null) { continue; } bool exist = ExistElement(starMapVo.FixedStarid); if (!exist) { CreateFixedStarElement(starMapVo); } } //判断是否有删除的 有的话删除 if (m_FixedStarElements != null && m_FixedStarElements.Count > 0) { for (int iStar = m_FixedStarElements.Count - 1; iStar >= 0; iStar--) { FixedStarElement element = m_FixedStarElements[iStar]; if (element == null || element.gameObject == null) { continue; } int fixedStarId = element.m_FixedStarid; StarMapVO vo = ConfigVO <StarMapVO> .Instance.GetData(fixedStarId); if (vo == null || vo.ID <= 0) { GameObject.DestroyImmediate(element.gameObject); m_FixedStarElements.Remove(element); } } } }
private void OnEnable() { m_Target = target as FixedStarElement; m_StarMapVo = ConfigVO <StarMapVO> .Instance.GetData(m_Target.m_FixedStarid); }
public IEnumerator DoEditorUpdate(StarMapEditorRoot root) { m_Root = root; if (m_RectTrans != null) { m_RectTrans = GetComponent <RectTransform>(); } if (m_RectTrans != null) { m_RectTrans.anchoredPosition = Vector2.zero; } yield return(null); m_FixedStarElements.Clear(); FixedStarElement[] elements = GetComponentsInChildren <FixedStarElement>(true); if (elements != null && elements.Length > 0) { for (int iElement = 0; iElement < elements.Length; iElement++) { m_FixedStarElements.Add(elements[iElement]); } } yield return(null); if (m_FixedStarElements != null && m_FixedStarElements.Count > 0) { for (int iStarElement = 0; iStarElement < m_FixedStarElements.Count; iStarElement++) { FixedStarElement element = m_FixedStarElements[iStarElement]; if (element != null) { IEnumerator elementEnumer = element.DoEditorUpdate(this); while (elementEnumer.MoveNext()) { yield return(null); } } } } yield return(null); m_Trails.Clear(); TrailRenderer[] trails = GetComponentsInChildren <TrailRenderer>(); if (trails != null && trails.Length > 0) { for (int iTrail = 0; iTrail < trails.Length; iTrail++) { m_Trails.Add(trails[iTrail]); //trails[iTrail].Clear(); } } yield return(null); if (m_StarMapVoList != null && m_StarMapVoList.Count > 0) { int trailIndex = 0; TrailRenderer trailRender = null; for (int iStar = 0; iStar < m_StarMapVoList.Count; iStar++) { StarMapVO starMapVo = m_StarMapVoList[iStar]; if (starMapVo == null) { continue; } FixedStarElement beginElement = GetElement(starMapVo.FixedStarid); if (beginElement == null) { continue; } int[] relationIds = starMapVo.Relation_Id; if (relationIds != null && relationIds.Length > 0) { for (int iRelation = 0; iRelation < relationIds.Length; iRelation++) { FixedStarElement endElement = GetElement(relationIds[iRelation]); if (endElement == null) { continue; } if (m_Trails.Count > trailIndex) { trailRender = m_Trails[trailIndex]; } else { GameObject trailObj = new GameObject("Trail_" + trailIndex); trailRender = trailObj.AddComponent <TrailRenderer>(); } trailRender.transform.SetParent(beginElement.transform); trailIndex++; trailRender.Clear(); trailRender.startWidth = 0.3f; trailRender.AddPosition(beginElement.transform.position); trailRender.AddPosition(endElement.transform.position); trailRender.transform.position = endElement.transform.position; } } } } }