作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我导入了一个 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/
我是一名优秀的程序员,十分优秀!