private void CreateUIPanelCode(GameObject uiPrefab, string uiPrefabPath) { if (null == uiPrefab) { return; } var behaviourName = uiPrefab.name; var strFilePath = CodeGenUtil.GenSourceFilePathFromPrefabPath(uiPrefabPath, behaviourName); if (File.Exists(strFilePath) == false) { RegisteredTemplateGeneratorsFactory.RegisterTemplate <PanelCodeData, UIPanelDataTemplate>(); RegisteredTemplateGeneratorsFactory.RegisterTemplate <PanelCodeData, UIPanelTemplate>(); var factory = new RegisteredTemplateGeneratorsFactory(); var generators = factory.CreateGenerators(new UIGraph(), UIMarkCollector.mPanelCodeData); CompilingSystem.GenerateFile(new FileInfo(strFilePath), new CodeFileGenerator(UIKitSettingData.GetProjectNamespace()) { Generators = generators.ToArray() }); RegisteredTemplateGeneratorsFactory.UnRegisterTemplate <PanelCodeData>(); } CreateUIPanelDesignerCode(behaviourName, strFilePath); Debug.Log(">>>>>>>Success Create UIPrefab Code: " + behaviourName); }
private void CreateUIPanelDesignerCode(string behaviourName, string uiUIPanelfilePath) { var dir = uiUIPanelfilePath.Replace(behaviourName + ".cs", ""); var generateFilePath = dir + behaviourName + ".Designer.cs"; RegisteredTemplateGeneratorsFactory.RegisterTemplate <PanelCodeData, UIPanelDesignerTemplate>(); var factory = new RegisteredTemplateGeneratorsFactory(); var generators = factory.CreateGenerators(new UIGraph(), UIMarkCollector.mPanelCodeData); CompilingSystem.GenerateFile(new FileInfo(generateFilePath), new CodeFileGenerator(UIKitSettingData.GetProjectNamespace()) { Generators = generators.ToArray() }); RegisteredTemplateGeneratorsFactory.UnRegisterTemplate <PanelCodeData>(); foreach (var elementCodeData in UIMarkCollector.mPanelCodeData.ElementCodeDatas) { var elementDir = string.Empty; elementDir = elementCodeData.MarkedObjInfo.MarkObj.GetUIMarkType() == UIMarkType.Element ? (dir + behaviourName + "/").CreateDirIfNotExists() : (Application.dataPath + "/" + UIKitSettingData.GetScriptsPath() + "/Components/").CreateDirIfNotExists(); CreateUIElementCode(elementDir, elementCodeData); } }
private void CreateUIPanelDesignerCode(string behaviourName, string uiUIPanelfilePath, PanelCodeInfo panelCodeInfo) { var dir = uiUIPanelfilePath.Replace(behaviourName + ".cs", ""); var generateFilePath = dir + behaviourName + ".Designer.cs"; if (mScriptKitInfo.IsNotNull()) { if (mScriptKitInfo.Templates.IsNotNull() && mScriptKitInfo.Templates[1].IsNotNull()) { mScriptKitInfo.Templates[1].Generate(generateFilePath, behaviourName, UIKitSettingData.GetProjectNamespace(), panelCodeInfo); } mScriptKitInfo.HotScriptFilePath.CreateDirIfNotExists(); mScriptKitInfo.HotScriptFilePath = mScriptKitInfo.HotScriptFilePath + "/" + behaviourName + mScriptKitInfo.HotScriptSuffix; if (File.Exists(mScriptKitInfo.HotScriptFilePath) == false && mScriptKitInfo.Templates.IsNotNull() && mScriptKitInfo.Templates[2].IsNotNull()) { mScriptKitInfo.Templates[2].Generate(mScriptKitInfo.HotScriptFilePath, behaviourName, UIKitSettingData.GetProjectNamespace(), panelCodeInfo); } } else { RegisteredTemplateGeneratorsFactory.RegisterTemplate <PanelCodeInfo, UIPanelDesignerTemplate>(); var factory = new RegisteredTemplateGeneratorsFactory(); var generators = factory.CreateGenerators(new UIGraph(), panelCodeInfo); CompilingSystem.GenerateFile(new FileInfo(generateFilePath), new CodeFileGenerator(UIKitSettingData.GetProjectNamespace()) { Generators = generators.ToArray() }); RegisteredTemplateGeneratorsFactory.UnRegisterTemplate <PanelCodeInfo>(); } foreach (var elementCodeData in panelCodeInfo.ElementCodeDatas) { var elementDir = string.Empty; elementDir = elementCodeData.BindInfo.BindScript.GetBindType() == BindType.Element ? (dir + behaviourName + "/").CreateDirIfNotExists() : (Application.dataPath + "/" + UIKitSettingData.GetScriptsPath() + "/Components/").CreateDirIfNotExists(); CreateUIElementCode(elementDir, elementCodeData); } }