linux - 如何在基于 Unity 的 Linux 构建中设置默认命令行参数

标签 linux unity3d command-line build local

我在 Linux 上使用 local 有一些问题。

使用“LANG=C”问题修复运行构建时的问题修复。

如何将此参数设置为 Linux 构建中的默认参数?

最佳答案

我可以想到两种方法来做到这一点。

批量启动

第一种方法是简单地创建一个 shell 脚本(Windows 上的批处理文件或 Linux 上的 bash,或者任何适用于您的目标平台的等效文件),使用提供的参数启动默认程序;然后像对待默认程序一样对待启动器脚本,这样就不会让人感到困惑。

某些 DDS 服务,如 Steam,允许自定义启动参数,因此您可能希望在调用后附加 $@ 以将所有参数添加到末尾。

所以你的批处理启动器只包含类似的东西

LANG=C ./my_game_name.x86 $@

值得注意的是,我以前听说过这个问题,一般是在非英语地区,LC_ALL=C也被认为是重要的。不过,我无法解释为什么。这会让它更像:

LC_ALL=C LANG=C ./my_game_name.x86 $@

自定义启动器

另一个选项大致相同,但通过一个可能用 C# 编写的可执行文件(因为您已经在使用 Unity),它使用默认选项运行程序。作为一个相当老派的 Linux 用户,我发现它不符合我的喜好,但在 https://loune.net/2017/06/running-shell-bash-commands-in-net-core/ 有一个不错的例子。 .您可能需要通过 Visual Studio 为 Linux 编译它。

对于更多平台不可知的语言,如 Python 或 Ruby,情况也是如此。我更喜欢批量启动,因为它切入正题。

只需确保您的启动器被标记为可执行文件 chmod u+x ./launcher_name

很可能 Unity 有某种方法可以将其设置为默认值,但我还没有找到任何引用资料,而且我知道过去曾使用这种确切方法发布过游戏。

关于linux - 如何在基于 Unity 的 Linux 构建中设置默认命令行参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49273251/

相关文章:

php - 从 PHP 中使用 sudo 运行 shell 脚本

linux - 我的程序在读取/etc/passwd时应该锁定/etc/.pwd.lock吗?

c - 为什么 realloc() 在 C 中 malloc() 成功的地方失败?

linux - 尝试创建永久别名 - UNIX

input - Unity3d外置相机帧率

ios - 构建到iOS时Unity C#Social.LoadUsers导致一致的崩溃

java - 在 Unity 3d(3D) 中翻转重力

linux - 如何生成一个新终端并使用 shell 脚本在其上运行一些命令?

java - Runtime.getRuntime().exec -> Cannot run program CreateProcess error=2, 系统找不到指定的文件

c++ - 有没有办法在 Visual Studio 中捕获标准错误和标准输出?