如何在运行时以统一的方式选择和加载任何扩展名的文件

时间:2017-09-19 04:45:45

标签: c# database unity3d

我正在创建一个统一的游戏,需要将一些文件存储在数据库中。首先,当游戏运行时,用户点击一个按钮,它会打开文件选择器,用户选择并存储在db中。如何在运行期间统一执行此操作?任何帮助表示赞赏。谢谢 Ps:文件可以是.fbx,.obj甚至.txt,.lbr等。

2 个答案:

答案 0 :(得分:1)

使用Bearbone System.IO不适用于Unity只是因为游戏一旦编译就不会保留其具有实际文件夹的编辑器方式,它将全部编译为一个文件。

它将在编辑器中工作,尽管在播放模式下您将能够使用它,并且唯一有用的方法是为编辑器制作工具,但是对于这种特殊情况,您应该在此基础上更多考虑AssetsBundle here

答案 1 :(得分:0)

您需要制作并填写自己的目录浏览器。 为此,您可以使用System.IO。

您需要执行以下4个步骤:

protected string[] m_files;
protected string[] m_folders;

1.-设定路径:

CurrentDirectory = path;

2.-读取路径中的文件:

m_files = Directory.GetFiles(CurrentDirectory, "*.myExtension");

3.-阅读路径中的文件夹:

m_folders = Directory.GetDirectories(CurrentDirectory);

4.-让您的浏览器添加文件&文件夹图标与您的海关gameobjects,从m_files和m_folders数组中提取文件名和foldernames。

private string GetFolderName(string file)
{

DirectoryInfo info = new DirectoryInfo(file);

string shortname = info.Name;

return shortname;
}

private string GetFileName(string file)
{
string shortname = Path.GetFileNameWithoutExtension(file);

return shortname;
}

要导航到另一个文件夹,您需要将操作设置为目录图标元素并更改路径并再次读取文件和目录。