gpt4 book ai didi

c# - 如何从 Unity 上的 C# 静态类获取当前文件夹

转载 作者:行者123 更新时间:2023-12-04 08:31:15 25 4
gpt4 key购买 nike

我导入了一个 Unity 包,其中多个编辑器脚本依赖于静态类中的 RootPath 属性:

public static class EditorUtils
{
public static string RootPath => "Assets/HardcodedPath";
}

问题在于该路径是硬编码的,因此包位置根本无法更改。我计划更改 RootPath 属性,以便它获取当前脚本位置并使用给定模式搜索父文件夹。这样,即使在我自己的自定义包中(即在 Packages 文件夹而不是 Assets 文件夹中),我也可以使用此包。

缺少的部分是我找不到从代码中获取此静态类文件夹位置的方法。谁能帮我解决这个问题吗?

最佳答案

深入研究 AssetDatabase 并找到对您的脚本的引用。这应该返回您想要的内容。

public static class EditorUtils
{
public static string RootPath
{
get
{
var g = AssetDatabase.FindAssets ( $"t:Script {nameof(EditorUtils)}" );
return AssetDatabase.GUIDToAssetPath ( g [ 0 ] );
}
}
}

这也适用于包中的脚本。请记住将 EditorUtils 更改为您的脚本名称。

Here's相关的 Unity 文档。

关于c# - 如何从 Unity 上的 C# 静态类获取当前文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65013213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com