C# 在编辑器重命名模式下创建新的Unity资源
我正在为ScriptableObject添加自定义创建操作,如下所示:C# 在编辑器重命名模式下创建新的Unity资源,c#,unity3d,C#,Unity3d,我正在为ScriptableObject添加自定义创建操作,如下所示: [MenuItem("Assets/Create/FlowEngine/Character")] private static void CreateCharacter() { string path = AssetDatabase.GetAssetPath(Selection.activeObject); string assetPath = path + "/New Character.asset";
[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;
}
[MenuItem(“资产/创建/流引擎/角色”)]
私有静态void CreateCharacter()
{
字符串路径=AssetDatabase.GetAssetPath(Selection.activeObject);
字符串assetPath=path+“/New Character.asset”;
FlowEngineCharacterData字符=ScriptableObject.CreateInstance();
创建资产(字符,资产路径);
AssetDatabase.SaveAssets();
Selection.activeObject=字符;
}
这与预期完全一样,但这与所有内置资产之间有一个区别。当您创建这些文件时,它会在重命名“模式”下自动启动
我发现重命名资产的唯一方法是直接重命名资产,而不是启动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);
}
[MenuItem(“资产/创建/流引擎/角色”)]
私有静态void CreateCharacter()
{
字符串路径=AssetDatabase.GetAssetPath(Selection.activeObject);
字符串assetPath=path+“/New Character.asset”;
FlowEngineCharacterData字符=ScriptableObject.CreateInstance();
ProjectWindowUtil.CreateAsset(字符,assetPath);
}
请注意,这是ProjectWindowUtil
,而不是AssetDatabase
。使用该选项可在“重命名模式”下关闭创建操作