public IEnumerator DoEditorUpdate(PlanetAreaContainer container) { m_Container = container; if (m_Resobj != null) { m_Res = m_Resobj.name; } else { m_Res = ""; } transform.localScale = Vector3.one; 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_AreaData != null) { ulong[] childArea = m_AreaData.childrenAreaList; if (childArea != null && childArea.Length > 0) { TrailRenderer trailRender = null; for (int iChild = 0; iChild < childArea.Length; iChild++) { if (m_Trails.Count > iChild) { trailRender = m_Trails[iChild]; } else { GameObject trailObj = new GameObject("Trail_" + iChild); trailObj.transform.SetParent(transform); trailRender = trailObj.AddComponent <TrailRenderer>(); } PlanetAreaElement targetElement = m_Container.GetElement(childArea[iChild]); if (targetElement != null) { trailRender.Clear(); trailRender.startWidth = 0.3f; trailRender.AddPosition(transform.position); trailRender.AddPosition(targetElement.transform.position); trailRender.transform.position = targetElement.transform.position; } } } } }
public PlanetAreaElement GetElement(uint mapId, ulong areaId) { if (m_PlanetAreaContainers != null && m_PlanetAreaContainers.Count > 0) { for (int iArea = 0; iArea < m_PlanetAreaContainers.Count; iArea++) { PlanetAreaContainer container = m_PlanetAreaContainers[iArea]; if (container.m_GamingMapId == mapId) { return(container.GetElement(areaId)); } } } return(null); }