在编辑器重命名模式下创建新的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重命名操作。

我有什么办法可以复制这种行为吗?

在编辑器重命名模式下创建新的Unity资源

我在另一个名称空间中找到了这个问题的答案:

[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