2015-10-15 22 views
1

我加入一個自定義的是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重命名操作。

有什麼辦法可以複製這種行爲嗎?

回答

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。使用該命令可以在「重命名模式」中關閉創建操作。

相關問題