public LYRagdoll Enable(GameObject obj_) { string name = obj_.name.ToLower(); name = name.Replace("(clone)", ""); LYRagdoll rd = obj_.GetComponentInChildren <LYRagdoll>(); if (rd != null) { rd.enabled = true; return(rd); } templateItemD template = GetTemplateItem(name); if (template == null) { return(null); } ItemD item = template != null?GetNodeItemByTemplateName(template.templateName) : GetNodeItemDByObj(obj_); if (item == null) { return(null); } rd = obj_.AddComponent <LYRagdoll>(); rd.LoadFromNode(item, template); rd.OnEnable(); return(rd); }
protected void LoadTemplateFile(string pathName_) { try { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(pathName_); templateItemD templateItem = new templateItemD(); foreach (XmlNode node in xmlDocument.ChildNodes) { if (node.Name == "root") { foreach (XmlAttribute a in node.Attributes) { if (a.Name == "templateName") { templateItem.templateName = a.Value.ToLower(); } else if (a.Name == "prefabName") { templateItem.prefabName = a.Value.ToLower(); } } for (int i = 0; i < node.ChildNodes.Count; i++) { string orgName = ""; string newName = ""; foreach (XmlAttribute a in node.ChildNodes[i].Attributes) { if (a.Name == "orgName") { orgName = a.Value; } if (a.Name == "newName") { newName = a.Value; } } if (string.IsNullOrEmpty(orgName) == false && string.IsNullOrEmpty(newName) == false) { templateItem.nameMap[orgName] = newName; } } } } if (string.IsNullOrEmpty(templateItem.prefabName) == false && string.IsNullOrEmpty(templateItem.templateName) == false) { templateMap.Add(templateItem.prefabName, templateItem); } } catch (Exception) { throw; } }