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

时间:2015-10-15 10:30:20

标签: c# unity3d

我正在为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;
}

这与预期完全一致,但是这个和所有内置资产之间存在一个区别。当您创建它们时,它会自动以重命名“模式”启动。

我唯一可以找到的重命名资产的方法是直接重命名资产而不是启动UI重命名操作。

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

1 个答案:

答案 0 :(得分:2)

我找到了一个隐藏在其他名称空间中的答案:

[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。使用它可以在重命名模式&#39;中启动创建操作。