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

传送实现

9
实现一个门户,通过它zepeto角色可以传送到两个不同的点。 步骤 1 设置传送目标点 在场景中实现zepeto角色创建代码作为默认。 📘 请参考以下指南。 \[ 创建一个zepeto角色 docid\ x uqcezxzv rams18k0bt ] 1\) 创建传送点。 在本指南中,我们将其称为a点和b点。 创建一个层级 > 3d对象 > 平面,并将其重命名为plane a。 2\) 添加一个传送门对象以启动传送。 确保添加一个碰撞体以与对象交互。 调整区域的大小以检测碰撞。 确保检查是否为触发器。 3\) 以相同的方式创建总共2个传送点。 调整位置以确保点不重叠。 步骤 2 编写脚本 1\) 创建一个项目 > 创建 > zepeto > typescript,并将其重命名为 teleport。 2\) 编写如下示例脚本。 当在附加脚本的对象的碰撞区域内检测到与 zepeto 角色的碰撞时,逻辑将目标对象传送。 import { collider, vector3, quaternion, gameobject } from 'unityengine'; import { spawninfo, zepetocharacter, zepetoplayer, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class teleport extends zepetoscriptbehaviour { // 要传送到的目标对象 public destinationobject gameobject; private localcharacter zepetocharacter; start() { // 找到本地玩家并将其设置为 localcharacter zepetoplayers instance onaddedlocalplayer addlistener(() => { this localcharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { // 如果 localcharacter 尚未设置或碰撞的 gameobject 不是 localcharacter,则不执行该函数 if (this localcharacter == null || collider gameobject != this localcharacter gameobject) { return; } // 将 localcharacter 传送到 destinationobject 的位置 this localcharacter teleport(this destinationobject transform position, quaternion identity); } } 3\) 完成脚本编写后,将脚本添加到将启动传送的 portal 对象。 4\) 在检查器中,分配目标对象。 目标对象 一个传送到达终点的传送门对象。 步骤 3 运行 当zepeto角色靠近传送门时,将其从a点传送到b点。 本指南仅处理我操控的本地玩家的传送。 在多人世界中,还需要同步其他玩家的位置。 使用多人示例的同步组件,位置同步易于实现。 📘 多人游戏示例 zepeto 多人游戏组件 https //github com/naverz/zepeto multiplay example/tree/main/assets/zepeto multiplay component https //github com/naverz/zepeto multiplay example/tree/main/assets/zepeto%20multiplay%20component