Unity 编辑器拓展功能之代码动态创建预制体

/*创建预制体*/
    async Task creatorPrefab(string filePath)
    {
     
    //这个相对路径最好修改为当前脚本路径,具体方法参考我另外一篇获得脚本路径得文章
        GameObject _newPrefab = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Editor/XLua/EditorWindow/Function2/ModleDialog.prefab");
        _newPrefab = GameObject.Instantiate(_newPrefab);//先实例化出来
        await Task.Delay(System.TimeSpan.FromSeconds(0.2));延时一下
        //保存到filePath路径下
        Object createObj = PrefabUtility.SaveAsPrefabAsset(_newPrefab,filePath);//使用绝对路径会警告,尽量转为相对路径
        GameObject.DestroyImmediate(_newPrefab);//立即删除实例化出来的物体
    }

示例

/*模板预制体*/
Task _prefabtask = creatorPrefab(@"Assets/Resources/Prefabs/UI/"+enableName+"/"+enableName+".prefab");

你可能感兴趣的:(unity,lua)