在编辑器重命名模式下创建新的Unity资源
本文关键字:Unity 资源 创建 编辑器 重命名 模式 | 更新日期: 2023-09-27 18:17:54
我正在为ScriptableObject添加一个自定义创建操作,如下所示:
[MenuItem("Assets/Create/FlowEngine/Character")]
private static void CreateCharacter()
{
string path = AssetDatabase.GetAssetPath(Selection.activeObject);
string assetPath = path + "/New Character.asset";
FlowEngineCharacterData character = ScriptableObject.CreateInstance<FlowEngineCharacterData>();
AssetDatabase.CreateAsset(character, assetPath);
AssetDatabase.SaveAssets();
Selection.activeObject = character;
}
这完全按照预期工作,但这与所有内置资产之间有一个区别。当你创建这些时,它会自动在重命名'mode'中启动。
我能找到的唯一方法是直接重命名资产,而不是开始UI重命名操作。
我有什么办法可以复制这种行为吗?
我在另一个名称空间中找到了这个问题的答案:
[MenuItem("Assets/Create/FlowEngine/Character")]
private static void CreateCharacter()
{
string path = AssetDatabase.GetAssetPath(Selection.activeObject);
string assetPath = path + "/New Character.asset";
FlowEngineCharacterData character = ScriptableObject.CreateInstance<FlowEngineCharacterData>();
ProjectWindowUtil.CreateAsset(character, assetPath);
}
注意是ProjectWindowUtil
而不是AssetDatabase
。