private static void InternalExport(IndexRenderersData indexRenderersData, Stack <int> indices, Transform rootTransform, bool includeDeactive) { int childCount = rootTransform.childCount; for (int iChild = 0; iChild < childCount; iChild++) { Transform iterChild = rootTransform.GetChild(iChild); GameObject iterGameObject = iterChild.gameObject; if (!includeDeactive && !iterGameObject.activeSelf) { continue; } indices.Push(iChild); if (Common.Utility.ObjectUtility.HasStaticEditorFlag(iterGameObject #if UNITY_2019_1_OR_NEWER , StaticEditorFlags.ContributeGI #else , UnityEditor.StaticEditorFlags.LightmapStatic #endif )) { UnityEngine.Renderer iterRenderer = iterGameObject.GetComponent <UnityEngine.Renderer>(); if (iterRenderer) { indexRenderersData.RenderersIndices.Add(new IndexRenderersData.Indices(indices)); RendererData rendererData = new RendererData(); rendererData.Export(iterRenderer); indexRenderersData.RenderersData.Add(rendererData); } } InternalExport(indexRenderersData, indices, iterChild, includeDeactive); indices.Pop(); } }