gpt4 book ai didi

c# - 游戏开发 - 如何将 'command line arguments' 传递给 Unity 独立构建?

转载 作者:太空狗 更新时间:2023-10-29 23:12:59 27 4
gpt4 key购买 nike

Standalone/Client/Exe/Player/Build 都是指最终用户将用来运行我的游戏的可执行文件。

我使用 Unity 作为我选择的环境。我正在创建一个启动器来启动游戏。这听起来很多余,因为 unity 有一个“启动器”窗口,用于他们的独立构建,但此目的是通过检查服务器上的最新版本来确保游戏是最新的。我使用简单的 WPF 应用程序构建了客户端。在这一点上,我正在尝试考虑我的各种选项,以确保游戏的可执行文件从启动器启动。然而,Unity 的独立构建只接受少数范围的参数。这是我正在考虑的:

  • 将可执行文件隐藏为两个单独的 不可执行 文件,在命令行中使用 copy/b 临时合并,并输出为 exe(然后在启动后删除) . exe 文件不超过 17mb,因此不会花费太长时间。
  • 找到一些方法来修改 .exe 以检查要传递的特定命令行参数(Unity 的运行时不允许开发人员在构建后访问参数。“安全问题”???)
  • 创建一个临时文件来存储时间戳或一些唯一标识符,独立游戏将检查该文件以确保它是从启动器启动的(唯一的问题是抛出一个错误让 Windows 捕获,它会说“你必须开始游戏从发射器。'或类似的东西)

我真的很想使用这个启动器,因为:

  • 这将确保玩家的游戏得到更新,因此他们无法作弊/利用
  • 它将允许使用 5-10mb 的小型启动器安装游戏,而不是下载整个游戏
  • 很酷

如果您有任何其他建议,或者可以指导我正确的方法,请告诉我。谢谢。

最佳答案

这里回答: http://answers.unity3d.com/questions/366195/parameters-at-startup.html

// Helper function for getting the command line arguments
private static string GetArg(string name)
{
var args = System.Environment.GetCommandLineArgs();
for (int i = 0; i < args.Length; i++)
{
if (args[i] == name && args.Length > i + 1)
{
return args[i + 1];
}
}
return null;
}

您可以使用 System.Environment.GetCommandLineArgs() 访问 Unity 构建中的命令行参数。

关于c# - 游戏开发 - 如何将 'command line arguments' 传递给 Unity 独立构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39843039/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com