public override void GenerateUI() { string gameObjectInitTemplate = " {0} = transform.Find(\"{1}\").gameObject;\n"; string transformInitTemplate = " {0} = transform.Find(\"{1}\");\n"; string componentInitTemplate = " {0} = transform.Find(\"{1}\").GetComponent<{2}>();\n"; string paramTemplate = " public {0} {1};\n"; StringBuilder init = new StringBuilder(); StringBuilder param = new StringBuilder(); ComponentInfo info = GetComponentInfo(); foreach (Transform tran in GetChildrenTransform()) { string name = tran.name; string tag = tran.gameObject.tag; if (CheckTag(tag)) { CheckPrefabName(name); if (tag == TagType.UI_Button) { param.Append(string.Format(paramTemplate, info.GetButton(), name)); init.Append(string.Format(componentInitTemplate, name, GetHierarchy(tran), info.GetButton())); } else if (tag == TagType.UI_GameObject) { param.Append(string.Format(paramTemplate, info.GetGameObject(), name)); init.Append(string.Format(gameObjectInitTemplate, name, GetHierarchy(tran))); } else if (tag == TagType.UI_Lable) { param.Append(string.Format(paramTemplate, info.GetLable(), name)); init.Append(string.Format(componentInitTemplate, name, GetHierarchy(tran), info.GetLable())); } else if (tag == TagType.UI_Sprite) { param.Append(string.Format(paramTemplate, info.GetSprite(), name)); init.Append(string.Format(componentInitTemplate, name, GetHierarchy(tran), info.GetSprite())); } else if (tag == TagType.UI_Texture) { param.Append(string.Format(paramTemplate, info.GetTexture(), name)); init.Append(string.Format(componentInitTemplate, name, GetHierarchy(tran), info.GetTexture())); } else if (tag == TagType.UI_Toggle) { param.Append(string.Format(paramTemplate, info.GetToggle(), name)); init.Append(string.Format(componentInitTemplate, name, GetHierarchy(tran), info.GetToggle())); } else if (tag == TagType.UI_Transform) { param.Append(string.Format(paramTemplate, info.GetTransform(), name)); init.Append(string.Format(transformInitTemplate, name, GetHierarchy(tran))); } } } content = ReadTemplateString(); content = content.Replace("{#class#}", GetClassName()); content = content.Replace("{#param#}", param.ToString()); content = content.Replace("{#init#}", init.ToString()); SaveFile(); }