c# - 如何在 Unity 中有活动和加载的场景但不渲染它?
问题描述
所以我想在 Unity 中制作简单的多人游戏(2d 射击游戏),我想要两个项目。一个用于客户端,一个用于服务器。我寻找了一些现有的工具来从游戏中制作服务器(以激励自己),比如 Argo 和使命召唤:黑色行动 3,它们有一个共同点。它只是命令提示符。我喜欢这个想法,我对我现在正在尝试制作的工具的外观也有类似的想法。
在进行任何编程之前,我考虑过事情将如何工作。我设计了当玩家射击时,他的客户端会发送玩家的枪的位置,方向等。然后服务器会向所有客户端发送子弹飞行的方向等。我想服务器处理子弹碰撞。所以...
...服务器项目中的场景必须加载、激活等。但我只想显示命令提示符。
我听说过 Unity 中的异步,但我不确定场景是否会在 async.allowSceneActivation = true 之前完全激活,或者是否有更好的方法在 Unity 中执行此操作。
我希望你能理解我的问题,并为我糟糕的英语感到抱歉。
解决方案
首先,为什么不使用 PUN 或 Photon?这将是最简单的方法。如果您想自己编写代码,我认为在您的服务器上启动 Unity 场景将是一个不好的方法。看看服务器端脚本语言。
要在无头模式下运行 Unity 游戏,您必须编写一个小脚本:
using UnityEditor;
class MyScript
{
static void PerformBuild ()
{
string[] scenes = { "Assets/MyScene.unity" };
BuildPipeline.BuildPlayer(scenes, ...);
}
}
然后通过命令行启动游戏C:\Program Files\Unity\Editor\Unity.exe -quit -batchmode -nographics -projectPath "c:\myproj"
如果你想要它用于 Linux:C:\Program Files\Unity\Editor\Unity.exe -quit -batchmode -nographics -projectPath "c:\myproj" -buildLinuxUniversalPlayer "c:\myprojbin"
推荐阅读
- html - 是否可以使用 CSS 更改插入符号“bubble”/“drop”颜色?(特定手机)
- sql - 计数组合+频率
- python - SOS 游戏 tkinter 问题,检查确认 SOS 已在列表范围内进行
- sql - 这个 SQL 查询可能吗?我正在尝试获取此表中出现频率最低的名称
- rust-cargo - Rust Crate:定义可配置变量
- python - 为什么我的错误是说我试图调用的属性不存在?
- reactjs - 初始化前无法访问“transactionId”
- android - 如何将 Firebase Recycler 视图从最新(列表顶部)排序到最旧
- python-3.x - 如何使用 pytest 测试 except 块的副作用?
- python - TypeError:Ui_MainWindow.on_click() 缺少 1 个必需的位置参数:“按下”