void PopulateReferencedNodes(Dictionary <UInt32, UnityNodeBase> referencedNodes, UnityNodeBase node) { if (referencedNodes.ContainsKey(node.GetReferenceID())) { referencedNodes[node.GetReferenceID()] = node; } List <UnityNodeBase> children = node.ChildNodes; for (int i = 0; i < children.Count; i++) { UnityNodeBase child = children[i]; PCFResourceType type = child.GetResourceType(); if (type == PCFResourceType.ROOT || type == PCFResourceType.OBJECT || type == PCFResourceType.TRANSFORM) { PopulateReferencedNodes(referencedNodes, children[i]); } } }
UnityNodeBase FindNodeWithID(UnityNodeBase node, UInt32 referenceID) { if (node.GetReferenceID() == referenceID) { return(node); } for (int i = 0; i < node.ChildNodes.Count; i++) { UnityNodeBase foundChild = FindNodeWithID(node.ChildNodes[i], referenceID); if (foundChild != null) { return(foundChild); } } return(null); }