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

sce*_*nia 4 c# io unity-game-engine

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

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

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

我不是在问如何实际加载游戏(不管怎么说,每个游戏都不同),我只需要知道我如何"抓住"用户使用我的game.exe打开文件的情况.

Rei*_*ica 5

如果你想添加程序"打开方式"上下文菜单(你需要做的是在您的安装,添加注册表项,指向您的应用程序,如解释在这里 .如果你没有安装程序(我认为这团结5可以为你建立一个),你可以通过电话在游戏中简单地做到这一点

Microsoft.Win32.Registry.SetValue(key, valueName, value, Microsoft.Win32.RegistryValueKind.String);
Run Code Online (Sandbox Code Playgroud)

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

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

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

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