创造你的世界
与物体互动

实现一个跟随角色的对象

9min

您可以使用 NavMeshAgent 组件来实现跟随您角色的 AI 对象。

在本指南中,您将实现一个跟随您的宠物类型对象。



步骤 1 : 设置 NavMesh

1) 设置导航网格 (NavMesh) 以定义宠物对象可以移动的区域。

  • 请参考 NavMesh 指南以获取有关如何设置的详细信息。

  • 设置背景对象的导航静态属性,并在烘焙选项卡上按下烘焙按钮以生成导航网格。
Document image




2) 将 NavMeshAgent 组件添加到宠物对象,并设置代理的大小、旋转速度、加速度等。

  • 在这里,代理是使用NavMesh导航系统的宠物对象。
  • 通过更改代理的值,您可以设置宠物移动的速度、旋转速度和加速度、识别障碍物的高度等。
  • 我们将Nav Mesh代理的停止距离设置为3,以使宠物在距离玩家3的地方停止。
Document image




  • 请参考NavMeshAgent指南以获取有关如何设置的详细信息。



步骤 2 : 编写宠物 AI 脚本

1) 创建一个新的 TypeScript,并将其命名为 PetController,如下所示,并将脚本应用于宠物对象。

PetController.ts




脚本描述

  • 在脚本开始时,在 _target 中指定你的 ZEPETO 角色。
  • 在更新函数中,每帧使用 NavMeshAgent 的 SetDestination 函数将我的 ZEPETO 角色的位置设置为 NavMesh 的目标点。



2) 现在按下播放按钮执行,你会看到宠物对象会跟随你的角色并绕过墙壁等障碍物移动。

Document image




在角色头顶上创建宠物

1) 如果你想实现一个坐在角色身体上方的宠物,而不是跟随角色,你可以通过附加一个对象来实现。

📘 请参考以下指南。 [将物体附加到ZEPETO角色]



2) 编写以下 AttachPetController 脚本,其中变量 Pet 指定将作为宠物创建的对象。

  • 在 bodyBone 选项卡中,打开下拉菜单以选择将 Pet 对象附加到身体的哪个部分。
AttachPetController.ts




脚本描述

  • 当脚本启动时,它将找到本地玩家并定位角色的动画器。
  • 它将找到在变量 bodyBone 中选择的身体部分在角色的动画器上的位置。
  • 在我们找到的位置实例化一个宠物对象并创建它。您将把宠物对象父级设置为您之前找到的角色动画器的身体部分。



3) 按下 [▶︎(播放)] 按钮以运行它,您应该会看到在所选身体部分创建的宠物对象,如下图所示。



Document image