示例#1
0
        private void FindTransformsInHierarchy(UnityNodeBase node, Dictionary <string, Transform> mapping)
        {
            if (node.GetResourceType() == PCFResourceType.TRANSFORM)
            {
                Transform trans = node.GetTransform();
                mapping.Add(node.GetName(), trans);
            }

            for (int i = 0; i < node.ChildNodes.Count; i++)
            {
                UnityNodeBase   child = node.ChildNodes[i];
                PCFResourceType type  = child.GetResourceType();

                //Optimize search by not going into subtress that do not contain bones.
                if (type == PCFResourceType.ROOT || type == PCFResourceType.OBJECT || type == PCFResourceType.TRANSFORM)
                {
                    FindTransformsInHierarchy(child, mapping);
                }
            }
        }
示例#2
0
        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]);
                }
            }
        }