创造你的世界
玩家及角色:进阶

机器人玩家创建指南

15min

机器人玩家用于在没有足够的人开始多人世界时填补空缺,或者当玩家在游戏中离开时。

机器人玩家的行为需要为每个内容实现。

本指南描述了创建机器人玩家的一般方法。

📘 机器人玩家创建指南基于多人游戏指南。 [创建多人游戏]

步骤 1:创建一个机器人玩家

1-1. 添加一个名为 IsBot 的布尔值到多人游戏架构中。

Document image




1-2. 在服务器脚本 index.ts 中定义以下函数以创建一个机器人玩家,并在所需位置调用它。

index.ts




👍 提示

  • 特定用户的 userId 被提前存储,以便创建机器人角色。
  • 您可以通过检查连接到服务器的 OnJoin 的客户端的 userId 来检查特定用户的 UserId。在服务器脚本中编写以下脚本后,从相关世界连接。
index.ts




步骤 2:在客户端创建一个机器人玩家

2-1. 如果服务器在某个时刻创建了一个机器人玩家,客户端将在 OnJoinPlayer() 中将其识别为新玩家。

  • 创建项目 > 创建 > ZEPETO > TypeScript,并将其重命名为 BotPlayerManager。
  • 在 OnAddedPlayer() 中添加逻辑以创建每个玩家,并添加逻辑以区分机器人玩家并创建他们的 ZEPETO 角色。
BotPlayerManager.ts




2-2. 编写 SetBotPlayer 函数,以将标签和同步组件添加到机器人玩家,并创建控制它们的脚本。

  • 将 _botMapData 设置为以 Map 格式保存机器人玩家数据,以管理机器人玩家。
BotPlayerManager.ts




👍 提示 您可以向 SetBotPlayer() 添加额外的脚本或设置,以控制机器人玩家的行为。



步骤 3:在客户端创建一个机器人玩家按钮

对于需要一定数量玩家才能开始的世界,有时玩家数量不足,您必须等待很长时间才能开始游戏。

在这种情况下,您可以通过添加一个机器人玩家来启动世界。

3-1. 在 index.ts 中注册一个函数,当服务器接收到来自客户端的消息时执行 CreateBot()。

TypeScript




3-2. 在客户端脚本 BotPlayerManager.ts 中,编写一个函数将 "CreateBot" 消息发送到服务器。

  • 执行函数的方法是通过按下按钮发送消息。
  • 通过消息将要创建的机器人玩家的用户 ID 作为字符串发送。
BotPlayerManager.ts




3-3. 现在,当你运行服务器和运行时,你可以看到当你按下按钮时会创建机器人玩家。

Document image




步骤 4:通过添加机器人玩家来启动世界

当没有足够的玩家来启动世界时,你可以添加机器人玩家来启动世界。

4-1. 在服务器脚本中,在 OnJoin 期间添加以下代码,以检查玩家数量,并在至少有四名玩家时启动世界。

  • 在 CreateBot() 中添加一个函数以检查玩家数量。
  • 在 StartWorld() 函数中添加一个计数器以记录游戏次数。
index.ts




  • 在服务器上,当真实玩家加入房间时,会执行 OnJoin。因此,当通过 CreateBot 创建一个 Bot 玩家时,以及当玩家通过 OnJoin 进入时,checkPlayerNumber() 会增加人数。



4-2. 在客户端脚本 BotPlayerManager.ts 中,编写 StartWorld(),当从服务器接收到 StartWorld 消息时执行。

BotPlayerManager.ts




4-3. 在运行时,当玩家数量超过 4 个(包括 Bot 玩家)时,您可以在服务器控制台和客户端控制台上看到名为 World Start 的日志。

Document image




步骤 5:同步 Bot 玩家位置

以下是示例代码,它将添加的机器人玩家移动到本地玩家的位置并同步移动位置。

5-1. 首先,编写代码以在服务器的 index.ts 中接收到来自客户端的消息时移动机器人玩家,MoveBot

TypeScript




5-2. 在客户端脚本 BotPlayerManager.ts 中,编写 SendBotPosition(),当按下 buttonCallBot 时将本地玩家位置发送到服务器。

  • 然后编写代码,当从服务器接收到消息 MoveBotToPosition 时,将所有 Bot 玩家移动到消息中包含的位置。
BotPlayerManager.ts




5-3. 现在,如果您在运行时创建一个 Bot 玩家并按下 buttonCallBot 按钮,您应该会看到创建的 Bot 玩家移动到本地玩家角色的位置。

Document image




BotPlayerManager.ts 完整代码

BotPlayerManager.ts




index.ts 服务器完整代码

Text




更新日期 11 Oct 2024
Doc contributor
Doc contributor
此页面是否对您有帮助?