Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }