public void GetItem(int outputId, bool rebuildGlobalLists, bool resetTextures) { // Debug.Log("Terrain Layer GetItem " + TC.outputNames[outputId]); active = visible; if (t.childCount < 6) { active = false; return; } if (outputId == TC.objectOutput) { if (objectSelectItems == null) { objectSelectItems = new List <TC_SelectItem>(); } else { objectSelectItems.Clear(); } } else if (outputId == TC.treeOutput) { if (treeSelectItems == null) { treeSelectItems = new List <TC_SelectItem>(); } else { treeSelectItems.Clear(); } } Transform child = t.GetChild(outputId); TC_LayerGroup layerGroup = child.GetComponent <TC_LayerGroup>(); if (layerGroup != null) { layerGroup.level = 0; layerGroup.outputId = outputId; layerGroup.listIndex = outputId; layerGroup.parentItem = this; layerGroup.GetItems(true, rebuildGlobalLists, resetTextures); layerGroups[outputId] = layerGroup; } }
public override void GetItems(bool refresh, bool rebuildGlobalLists, bool resetTextures) { if (resetTextures) { DisposeTextures(); } active = visible; itemList.Clear(); firstActive = lastActive = -1; totalActive = 0; bool newBounds = true; int listIndex = 0; // Debug.Log(name + " GetItems"); for (int i = t.childCount - 1; i >= 0; i--) { Transform child = transform.GetChild(i); TC_Layer layer = child.GetComponent <TC_Layer>(); if (layer != null) { layer.SetParameters(this, listIndex); layer.GetItems(refresh, rebuildGlobalLists, resetTextures); if (layer.active) { ++totalActive; lastActive = listIndex; if (firstActive == -1) { firstActive = lastActive; } } itemList.Add(layer); ++listIndex; if (newBounds) { bounds = layer.bounds; newBounds = false; } else { bounds.Encapsulate(layer.bounds); } } else { TC_LayerGroup layerGroup = child.GetComponent <TC_LayerGroup>(); if (layerGroup == null) { TC.MoveToDustbin(child); } else { layerGroup.SetParameters(this, listIndex); layerGroup.GetItems(refresh, rebuildGlobalLists, resetTextures); if (layerGroup.active) { ++totalActive; lastActive = listIndex; if (firstActive == -1) { firstActive = lastActive; } } if (layerGroup.groupResult == null) { TC.MoveToDustbin(child); } else { itemList.Add(layerGroup); listIndex++; } if (newBounds) { bounds = layerGroup.bounds; newBounds = false; } else { bounds.Encapsulate(layerGroup.bounds); } } } } TC_Reporter.Log(TC.outputNames[outputId] + " Level " + level + " activeTotal " + totalActive); if (!active) { totalActive = 0; } else if (totalActive == 0) { active = false; } }