public static void DoCreateCodeFromScene(GameObject gameObject) { if (!gameObject) { Log.W("需要选择 GameObject"); return; } if (gameObject.GetComponent <AbstractBind>() && !gameObject.GetComponent <ViewController>()) { var parentController = gameObject.GetComponentInParent <ViewController>(); if (parentController) { gameObject = parentController.gameObject; } } Log.I("Create Code"); var generateInfo = gameObject.GetComponent <ViewController>(); var scriptsFolder = Application.dataPath + "/Scripts"; if (generateInfo) { scriptsFolder = generateInfo.ScriptsFolder; } scriptsFolder.CreateDirIfNotExists(); var panelCodeInfo = new PanelCodeInfo { GameObjectName = generateInfo.name }; // 搜索所有绑定 BindCollector.SearchBinds(gameObject.transform, "", panelCodeInfo); var uikitSettingData = UIKitSettingData.Load(); ViewControllerTemplate.Write(generateInfo.ScriptName, scriptsFolder, generateInfo.Namespace, uikitSettingData); ViewControllerDesignerTemplate.Write(generateInfo.ScriptName, scriptsFolder, generateInfo.Namespace, panelCodeInfo, uikitSettingData); EditorPrefs.SetString("GENERATE_CLASS_NAME", generateInfo.ScriptName); EditorPrefs.SetString("GENERATE_NAMESPACE", generateInfo.Namespace.IsTrimNullOrEmpty() ? uikitSettingData.Namespace : generateInfo.Namespace); EditorPrefs.SetString("GAME_OBJECT_NAME", gameObject.name); AssetDatabase.Refresh(); }
static void CreateCode() { var gameObject = Selection.objects.First() as GameObject; if (!gameObject) { Debug.LogWarning("需要选择 GameObject"); return; } if (gameObject.GetComponent <Bind>() && !gameObject.GetComponent <ViewController>()) { var parentController = gameObject.GetComponentInParent <ViewController>(); if (parentController) { gameObject = parentController.gameObject; } } Debug.Log("Create Code"); var generateInfo = gameObject.GetComponent <ViewController>(); var scriptsFolder = Application.dataPath + "/Scripts"; if (generateInfo) { scriptsFolder = generateInfo.ScriptsFolder; } scriptsFolder.CreateDirIfNotExists(); var panelCodeInfo = new PanelCodeInfo(); panelCodeInfo.GameObjectName = generateInfo.name; // 搜索所有绑定 BindCollector.SearchBinds(gameObject.transform, "", panelCodeInfo); var uikitSettingData = UIKitSettingData.Load(); ViewControllerTemplate.Write(generateInfo.ScriptName, scriptsFolder, uikitSettingData); ViewControllerDesignerTemplate.Write(generateInfo.ScriptName, scriptsFolder, panelCodeInfo, uikitSettingData); EditorPrefs.SetString("GENERATE_CLASS_NAME", generateInfo.ScriptName); EditorPrefs.SetString("GAME_OBJECT_NAME", gameObject.name); AssetDatabase.Refresh(); }