c# - 如何从 Unity 上的 C# 静态类获取当前文件夹
问题描述
我导入了一个 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 EditorUtils" );
return AssetDatabase.GUIDToAssetPath ( g [ 0 ] );
}
}
}
这也适用于包中的脚本。请记住更改EditorUtils
为您的脚本名称。
这是相关的 Unity 文档。
推荐阅读
- python - 有没有办法可以使用这样的代码从任何搜索引擎下载图像?
- c++ - 如何读取输入流但不能在 C++ 中提取它们?
- python - 有没有办法在不加载整个文件的情况下读取 .npy 标头?
- php - 使用php将csv文件插入mySql
- maven - 下载 nixpkgs.maven 时修改 $out/maven/conf 中的 settings.xml
- asp.net - Azure IoT Hub 设备与后端的云通信
- javascript - PHP Laravel 未解码 MySQL 表中检索到的项目中的特殊字符 &
- java - Java、xSocket——帧分为两部分——怎么读?
- wikibase - 在下面的 json 片段中,我们看到“错误”类型的警告“成功”:1
- haskell - 在haskell中将浮动类型转换为浮动类型