C# System.IO.Directory.EnumerateDirectory(dir)的Unity.Net语法
我的windows窗体项目中有一些代码:C# System.IO.Directory.EnumerateDirectory(dir)的Unity.Net语法,c#,.net,unity3d,version,C#,.net,Unity3d,Version,我的windows窗体项目中有一些代码: MatBaseIndicies = new Dictionary<string, int>(); string dir = Path.Combine(Data.BaseDir, "images"); dir = Path.Combine(dir, "equipment"); var subfolders = System.IO.Directory.EnumerateDirectories(dir); int counter = 0; fore
MatBaseIndicies = new Dictionary<string, int>();
string dir = Path.Combine(Data.BaseDir, "images");
dir = Path.Combine(dir, "equipment");
var subfolders = System.IO.Directory.EnumerateDirectories(dir);
int counter = 0;
foreach(string sub in subfolders)
{
MatBaseIndicies.Add(Path.GetFileName(sub), counter);
counter++;
}
MatBaseIndicies=newdictionary();
string dir=Path.Combine(Data.BaseDir,“图像”);
dir=路径联合收割机(dir,“设备”);
var subfolders=System.IO.Directory.EnumerateDirectory(目录);
int计数器=0;
foreach(子文件夹中的字符串子文件夹)
{
添加(Path.GetFileName(sub),计数器);
计数器++;
}
基本上,这段代码读取所有子文件夹,然后将它们的名称作为键添加到字典中,以便可以通过int查找它们
如果你想知道这个的目的(如果你不想知道,请跳过这一段):这是一个高度可定制的游戏的一部分,该游戏在启动时搜索文件夹以找到它的所有资产。当序列化对象以进行保存时,将保存字符串值,以便不会丢失到相关资产的链接。当对象被反序列化时,对象只需要存储一个查找字符串的int(这节省了内存)
这段代码不在Unity 5中编译,因为Unity使用了一个更旧的.Net版本,该版本不包含“System.IO.Directory.EnumerateDirectory”的定义
很抱歉,我不能确定.Net版本号的确切信息
如何重新编写此代码以支持Unity 5 Unity是基于.NET3.5构建的,正如您所指出的,它是一个更旧的版本
不过,您确实有一个选项,该函数将给您(几乎)相同的结果。Unity是基于.Net 3.5构建的,正如您所指出的,它是一个更旧的版本
不过,您确实有一个选项,该函数将给您(几乎)相同的结果。尝试GetDirectory而不是EnumeTatedDirectories。尝试GetDirectory而不是EnumeTatedDirectories。谢谢。最简单的问题,对吗?现在看来很明显。事后看来,我不知道为什么我认为我还没有找到答案。也许我可以将visual studio设置为.Net 3.5,这样我就不用问了。嘿,你说得对,这可能是我有过的最简单的答案之一。另外,不太熟悉VS for Unity(主要是单用户),但是VS中是否有选项可以将解决方案的目标设置为您希望的任何框架?谢谢。最简单的问题,对吗?现在看来很明显。事后看来,我不知道为什么我认为我还没有找到答案。也许我可以将visual studio设置为.Net 3.5,这样我就不用问了。嘿,你说得对,这可能是我有过的最简单的答案之一。另外,不太熟悉VS for Unity(主要是单用户),但是VS中是否有选项可以将解决方案的目标设置为您希望的任何框架?