Unity3d-编辑器-PrefabUtility.CreateEmptyPrefab PrefabUtility.CreatePrefab失败
2016-04-20 21:16
1641 查看
官方文档没有对PrefabUtility.CreateEmptyPrefab PrefabUtility.CreatePrefab作清晰地描述,实际对传入的路径有以下要求。否则操作失败
路径不能是绝对路径
相对于工程路径
UNIX-style路径分隔符
UnityEditor.PrefabUtility:CreatePrefab(String, GameObject)
Couldn’t create asset file!
UnityEditor.PrefabUtility:CreateEmptyPrefab(String)
假设Unity项目路径:c:\UnityProjects\XXXX\,XXXX的结构如下:
工程路径: c:\UnityProjects\XXXX\
Application.dataPath: c:\UnityProjects\XXXX\Assets\
正确写法
路径不能是绝对路径
相对于工程路径
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); }
相关文章推荐
- 2D游戏获得子节点的最小最大位置
- 【Unity】5.2 天空盒
- 【Unity】5.1 3D坐标系基础知识
- 【Unity】第5章 3D坐标系和天空盒
- 【Unity】6.8 Quaternion类(四元数)
- 【Unity】6.7 向量和Vector3类
- win7Aero主题下设置unity窗口全屏
- 【Unity】6.6 Random类
- 【Unity】6.5 Time类、Mathf类、Coroutine类
- 【Unity】6.4 Transform--移动、旋转和缩放游戏对象
- 【Unity】Unity 3D中的内存管理
- Unity3D学习日记(五)实现围绕物品旋转的的摄像机控制
- Unity3D使用碰撞体做触发器实现简单的自己主动开门
- Unity3D脚本依赖RequireComponent(自动添加关联的脚本)
- 【小松教你手游开发】【unity实用技能】unity自带寻路Navmesh入门教程
- Unity的DrawCall
- IoC实践--ASP.NET MVC5 采用Unity依赖注入Controller详解
- 【小松教你手游开发】【unity实用技能】一键改变UI字体
- Unity Shader 闪光特效
- unity3d调用windows窗体