Пример #1
0
    private static void SendGo(GC_GameObject obj)
    {
        foreach (var child in obj.Childs)
        {
            PackageEventSystem.Send(child.GetGOInfo());
        }

        foreach (var child in obj.Childs)
        {
            SendGo(child);
        }
    }
Пример #2
0
    private IEnumerator SendComponents(GC_GameObject obj)
    {
        foreach (var child in obj.Childs)
        {
            ComponentExporter.ExportComponents(child.Transform.GetComponents <Component>());
            yield return(new WaitForEndOfFrame());
        }

        foreach (var child in obj.Childs)
        {
            yield return(SendComponents(child));
        }
    }
Пример #3
0
    private void CreateHierarchy()
    {
        if (ProcessQueue.Count == 0)
        {
            return;
        }

        var transform = ProcessQueue[0];

        ProcessQueue.RemoveAt(0);

        var id = transform.GetInstanceID();

        GC_GameObject gcObj;

        if (!AllGameObjects.TryGetValue(id, out gcObj))
        {
            gcObj = new GC_GameObject(transform, id);
            AllGameObjects.Add(id, gcObj);
        }

        if (gcObj.Parent == null)
        {
            var parentTransform = transform.parent;

            if (parentTransform != null)
            {
                var gcParId = parentTransform.GetInstanceID();

                GC_GameObject parentGcObj;

                if (!AllGameObjects.TryGetValue(gcParId, out parentGcObj))
                {
                    parentGcObj = new GC_GameObject(parentTransform, gcParId);
                    AllGameObjects.Add(gcParId, parentGcObj);
                }

                parentGcObj.Childs.Add(gcObj);
                gcObj.Parent = parentGcObj;
            }
            else
            {
                SceneRoot.Childs.Add(gcObj);
            }
        }

        CreateHierarchy();
    }