如何在 Unity 编辑器中运行两个游戏窗口

Posted

技术标签:

【中文标题】如何在 Unity 编辑器中运行两个游戏窗口【英文标题】:How to run two game windows in Unity Editor 【发布时间】:2016-06-01 18:34:04 【问题描述】:

Unity 编辑器中有两个游戏窗口是什么意思?

如果一个人基本上可以在编辑器中拥有两个独立的窗口,而不是仅限于一个:

为什么会有用?

它主要用于网络。在测试网络多人游戏时,通常需要等待很长时间才能创建独立版本来测试和调试事件,而且在单机上调试错误也很困难。

如果我可以在单击播放按钮时运行两个实例(一个服务器/一个客户端),我会节省很多时间。

顺便说一句,这是一个游戏窗口 https://i.gyazo.com/2aeb04f8a41f1508d262cf9a526311bc.png

【问题讨论】:

(1) 你绝对不能那样做。您所做的只是:将一个版本构建为 Mac(或 PC)的实际桌面应用程序。然后使用那个,以及“在编辑器中”的那个。 (2) 请注意,出于这个原因,任何进行多人游戏开发的人的办公桌上都有两到三台机器。这很令人沮丧,但就是这样。 (3) “加上独立调试错误很难”我可以帮你。您绝对必须仔细设置系统,在设备屏幕上向您显示开发信息等。 (并确保您知道如何在设备上播放日志时查看日志,请自行搜索。) 【参考方案1】:

如果您尝试测试网络代码,打开多个“游戏窗口”实际上并不允许您这样做。如果您的计算机上有多个项目副本,则可以打开多个统一实例。 (unity 会在每个项目中放置一个锁定文件,因此您不能只使用相同的文件打开它两次)

这样做的缺点是,如果您在一个项目中进行更改,则必须在项目副本中复制/重做该更改。但肯定比构建更快,您可以将调试器连接到统一的两个实例

【讨论】:

我试了一下,它似乎可以工作,虽然我不太确定将项目同步在一起的最佳解决方案是什么,github? i.gyazo.com/205b76642ebafd2e6f5602f927224dcb.gif 是的,任何类型的版本控制系统都应该可以工作(git、svn、mercurial 等)。有可能只使用本地 git repo 在本地同步而不必使用 github,这回答了我的帮助***.com/questions/4860166/… 除非您的客户端和服务器应用程序只是同一个项目的两个不同副本,否则您可以使用 robocopy 和 Unity 命令行参数来自动化复制项目的过程。使用这种方法,您可以消除对“客户端”项目副本的版本控制分支的需要: SET projectPath=%cd%\..\CardGameMoba2 robocopy "..\CardGameMoba" "..\CardGameMoba2" /mir /R:0 /W:0 任务列表 /nh /fi "imagename eq Unity.exe" 2>nul | find /C "Unity.exe" > deleteme.txt SET /p unityInstances=【参考方案2】:

您可以创建多个目录并将“Assets”、“Packages”和“ProjectSettings”从源链接到您的副本。然后您的所有更改都将应用于所有实例。

在 Windows 上:“mklink /d 目标源” 在 mac 上:“ln -s 源目标”

您仍然需要在每个实例中应用一些设置(例如所选平台)

PS:确保您修改每个副本实例中的唯一标识符,以便能够充当不同的用户/帐户。这应该只是编辑器,可以帮助切换帐户以测试不同的权利/行为

【讨论】:

以上是关于如何在 Unity 编辑器中运行两个游戏窗口的主要内容,如果未能解决你的问题,请参考以下文章

Unity3DUnity 编辑器窗口布局 ( 创建 Unity3D 项目 | 添加物体 | 层级窗口 | 场景窗口 | 游戏窗口 | 属性窗口 | 项目窗口 | 控制台窗口 | 窗口位置修改 )

unity游戏启动如何调出

unity如何以窗口为基准移动模型

unity3d iTween如何放大UI大小

如何在 Unity3D 中编辑动画

unity怎么删除物体