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); } }
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)); } }
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(); }