您的位置:首页 > 移动开发 > Unity3D

Unity3d-编辑器-PrefabUtility.CreateEmptyPrefab PrefabUtility.CreatePrefab失败

2016-04-20 21:16 1641 查看
官方文档没有对PrefabUtility.CreateEmptyPrefab PrefabUtility.CreatePrefab作清晰地描述,实际对传入的路径有以下要求。否则操作失败

路径不能是绝对路径

相对于工程路径

UNIX-style路径分隔符

常见错误

is not a valid asset file name.

UnityEditor.PrefabUtility:CreatePrefab(String, GameObject)

Couldn’t create asset file!

UnityEditor.PrefabUtility:CreateEmptyPrefab(String)

不能使用绝对路径

错误例子

[MenuItem("GameTools/test1")]
public static void test1()
{
string fullPath = Application.dataPath + "test1.prefab";
PrefabUtility.CreateEmptyPrefab(fullPath);
}


假设Unity项目路径:c:\UnityProjects\XXXX\,XXXX的结构如下:

+XXXX
+ Assets
- NewBehaviourScript.cs
- New Prefab.prefab
+ Library
+ obj
+ ProjectSettings


工程路径: c:\UnityProjects\XXXX\

Application.dataPath: c:\UnityProjects\XXXX\Assets\

正确写法

[MenuItem("GameTools/test1")]
public static void test1()
{
string fullPath = "./Assets/test1.prefab";
PrefabUtility.CreateEmptyPrefab(fullPath);
}


必须是UNIX-style的路径分隔符

错误例子

[MenuItem("GameTools/test3")]
public static void test3()
{
string fullPath = "Assets\test3.prefab";
PrefabUtility.CreateEmptyPrefab(fullPath);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: