예제 #1
0
        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;
                        }
                    }
                }
            }
        }
예제 #2
0
 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);
 }