【问题标题】:Create new Unity asset in Editor rename mode在编辑器重命名模式下创建新的 Unity 资源
【发布时间】:2015-10-15 10:30:19
【问题描述】:

我正在为这样的 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 重命名操作。

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

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    我在其他命名空间之一中找到了这个问题的答案:

    [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。使用它会在“重命名模式”中启动创建操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多