在我的游戏中添加“open with ...”功能

时间:2015-06-24 12:53:45

标签: c# unity3d io

右键单击文件时,可以选择“打开方式...”选项以启动该程序并自动打开该程序中的文件。我猜大家都知道。

现在我正在构建一个统一游戏(脚本在c#中)并且我希望我的完成版本支持此功能,以便我的用户/玩家可以右击,例如,一个存档游戏文件,选择打开,和然后选择我的游戏可执行文然后游戏应该开始并加载已保存的游戏。

如何实现此功能?在文件系统中使用此选项时会发生什么?如何在游戏中处理它?

我不是在问如何实际加载游戏(对于每个游戏来说都是不同的),我只需要知道我如何“抓住”用户使用我的game.exe打开文件的情况。 / p>

1 个答案:

答案 0 :(得分:5)

如果要将程序添加到“打开方式”上下文菜单中 (您需要做的是在安装程序中添加注册表项,指向您的应用程序,如here所述 如果你没有安装程序(我认为unity 5可以为你建立一个),你可以通过调用

在游戏中完成它。
Microsoft.Win32.Registry.SetValue(key, valueName, value, Microsoft.Win32.RegistryValueKind.String);

在场景中使用脚本。或者你可以用C#编写一个安装程序来执行此操作。)

如果您只想处理使用应用程序打开的文件,则需要在Unity播放器中获取命令行参数,如文件路径。在加载1st的场景中编写脚本,该脚本读取System.Environment.GetCommandLineArgs()返回的字符串数组。第一个参数是可执行文件的名称,因此您需要执行以下操作:

string filepath;
string arguments = System.Environment.GetCommandLineArgs();
if (arguments.Length >= 2)
{
    filepath = arguments[1];
    DoYourThing(filepath);
}
return;

如果您然后右键单击您的文件,使用您的应用程序打开它,操作系统会将文件路径传递给应用程序,作为第二个命令行参数,并使用上面的代码,您将阅读它。