private static void LoadRecursionTwice(GameObject parentGo, BinaryNode domNode, GameObject go) { if (domNode == domNode.OwnerDocument.Root) { GameSerializer.LoadComponets(domNode, go); int num = -1; for (int i = 0; i < domNode.GetChildNum(); i++) { BinaryNode child = domNode.GetChild(i); if (child.GetName() == "CHD") { num++; GameObject gameObject = go.transform.GetChild(num).gameObject; if (!(gameObject == null)) { GameSerializer.LoadRecursionTwice(null, child, gameObject); } } } } else { BinaryNode parentNode = domNode.ParentNode; for (int j = 0; j < parentNode.GetChildNum(); j++) { BinaryNode child2 = parentNode.GetChild(j); if (!(child2.GetName() != "CHD")) { string attribute = GameSerializer.GetAttribute(child2, "ON"); if (!(attribute != go.name)) { GameSerializer.LoadComponets(child2, go); if (child2.GetChildNum() > 0 && go.transform.childCount > 0) { BinaryNode child3 = child2.GetChild(0); for (int k = 0; k < go.transform.childCount; k++) { GameObject gameObject2 = go.transform.GetChild(k).gameObject; GameSerializer.LoadRecursionTwice(null, child3, gameObject2); } } domNode = child2; } } } } string nodeAttr = GameSerializer.GetNodeAttr(domNode, "DIS"); if (nodeAttr != null) { go.SetActive(false); } else { go.SetActive(true); } }
private static GameObject Load(BinaryDomDocument document) { GameObject gameObject = null; GameSerializer.s_gameObjectRoot4Read = null; BinaryNode root = document.Root; if (root != null) { gameObject = GameSerializer.LoadRecursionOnce(null, root); GameSerializer.s_gameObjectRoot4Read = gameObject; GameSerializer.LoadRecursionTwice(null, root, gameObject); } if (Camera.main != null) { Camera.SetupCurrent(Camera.main); } GameSerializer.s_gameObjectRoot4Read = null; return(gameObject); }