对不起我的英文(谷歌翻译)。以下是在所选目录(Assets / Resources / TestObject.asset)中创建资产(ScriptableObject)的代码片段:
[MenuItem("Assets/Create/Test Object")]
private static void CreateTestObject()
{
var testObject = ScriptableObject.CreateInstance<TestObject>();
AssetDatabase.CreateAsset(testObject, "Assets/Resources/TestObject.asset");
AssetDatabase.SaveAssets();
}
如何获取我所在目录的路径?为了不手动硬编码路径,而是将此GameObject保存在我调用该方法的同一文件夹中。
例如:
1)我从 Assets / TestFolder / TestFolder2 调用该方法。
2)在同一目录中,它创建了一个资产(TestObject)。并且不会在资产/资源中创建。
总而言之,我需要通过菜单( Assets / Create / Test Object )获取我调用该方法的目录的路径。
此外:创建后可以立即重命名GameObject吗?与其他对象(脚本,文件夹等)一样。
提前感谢您的回答!
Example (screenshot): 如何获得以红色突出显示的路径。我将通过菜单(创建/测试对象)调用该方法。在我选择的目录中( Assets / TestFolder / TestFolder2 )。资产就是在那里创造的。而不是资产/资源。我需要一个将字符串返回给我的方法: Assets / TestFolder / TestFolder2 。
答案 0 :(得分:0)
System.Environment
类具有静态CurrentDirectory
属性。
答案 1 :(得分:0)
使用[CreateAssetMenu]
来创建ScriptableObject
,而不是[MenuItem]
。
当您使用CreateAssetMenu
属性时,它会向Assets-> Create添加选项,从而在当前文件夹中创建对象。
[CreateAssetMenu(menuName = "MyApp/TestClass")]
public class TestClass: ScriptableObject
{
}