这个技术 demo
的目的是展示如何创建房间,利用定制的游戏逻辑并处理一个完整的多人游戏周期。这个演示程序被用于设计使用Colyseus
版本 0.14
和 Unity
版本 2019.4.20f1
来完成。
下载 demo (查看源代码)
https://github.com/colyseus/unity-demo-shooting-gallery/archive/master.zip
https://github.com/colyseus/unity-demo-shooting-gallery
您需要从提供的 Server 目录安装并启动服务器,以便本 demo
正常运行。只需遵循 Unity3d 章节中 “Running the demo server” 下面的说明即可。
所有服务器设置都可以通过位于以下位置的 ColyseusSetting ScriptableObject
进行更改:
如果您运行的是本地服务器,那么默认设置就足够了,但是如果您希望托管服务器,则需要相应地更改 Colyseus 服务器地址 和 Colyseus 服务器端口 值。
在位于 Assets\GalleryShooter\Scenes\Lobby
的场景 “Lobby” 中启动玩家。输入您的用户名并创建一个房间开始。如果无法进入房间创建 screen,请确认本地服务器工作正常,并检查 Unity Editor
中的错误日志。 如果成功,客户端将加载 “GalleryShooter”
场景。如果你按回车键或点击 “Start”
按钮,你将 “ready up”
,游戏将开始。如果您等待更多玩家加入您的本地服务器,则所有玩家必须 “ready up” 才能开始游戏。
在使用这个演示时,您可能想做一些调整,以便更好地熟悉正在发生的事情。下面,您将学习如何进行这些微小的调整。
游戏中用于目标的值可以在 Server\src\rooms\customLogic\targets.ts
的服务器代码中找到。在这里,您可以调整分数值、重命名目标和添加/删除目标选项。如果您添加了一个新的目标,请确保也给它一个新的 “id”
值,否则 Unity client
将不知道要显示什么目标模型。
可以在 Assets\GalleryShooter\Prefabs\Targets\Controls\TargetController.prefab
的 “TargetController”
预置中调整客户端上的这些目标选项。如果您希望调整模型或添加新的目标,这里是您为客户端做准备的地方。
从服务器提供目标后,目标将根据其行移交给相应的 TargetTreadmill
。 “Row”
是在服务器上 target.ts
中第 52
行随机设置的。如果在 GalleryShooter
场景中添加或删除行,则必须通过 LobbyController.numberOfTargetRows
使服务器知道它:
这个数字将在房间初始化时提供给服务器,该值将在随机选择目标行时使用。
treadmills
各自控制发送目标的频率:
TargetBase
对象在这里控制自己的速度:
火炮的重要值可以在这里修改:
默认的最大球员数设置为 25
。你可以在 Server\src\rooms\ShootingGalleryRoom.ts
中第 94
行进行调整。或者,如果您希望没有限制,只需删除这一行。
您可以在 Assets\GalleryShooter\Prefabs\GalleryShootPlayer.prefab
上的预制板上调整玩家的移动值。在这里,您还可以调整远程玩家移动的插值速率以及其他限制。