入门
创建一个Zepeto角色
17 分
步骤 1 向场景添加基础 在层级窗口中,点击 3d 对象 → 平面。 将平面的位置设置为 x 0, y 0, z 0,并将大小设置为 x 10, y 1, z 10。 👍 提示 平面是用于测试的最基本地面。 只要是带有碰撞体的对象,使用什么都无所谓。 随着你对世界创建的熟悉,你可以制作一个酷炫的地图来替代地面。 没有平台,角色一创建就会掉落并且不可见。 步骤 2 添加 zepeto 玩家组件 在层级窗口中,选择 zepeto → zepetoplayers 标签。 一个名为 zepetoplayers 的对象将会自动创建,如下所示。 zepetoplayers 是一个管理世界中角色控制器模块的组件。 可以在检查器窗口中设置角色控制和相关功能的值。 通常可以设置 zepeto 相机设置、角色移动速度、跳跃高度等。 在这个例子中,我们将使用默认值。 📘 有关详细设置,请参阅 zepeto 角色控制器指南。 zepeto角色控制器 docid\ lxjo49zhlf mkcxbo2buc 步骤 3 加载角色 要加载角色,您需要创建一个新的 zepetoscript 文件。 1\) 在 \[项目] 面板中,选择左上角的 \[+] 菜单或选择资产 → 创建 → zepeto → typescript。 2\) 创建zepetoscript文件时,请输入名称characterloader。将创建一个如下所示的脚本文件。 3\) 在hierarchy→\[+] 菜单→运行create empty菜单。 4\) 创建空的 gameobject 时,写入 characterloader。将创建一个如下所示的 gameobject。 5\) 在hierarchy中选择characterloader gameobject,然后单击inspector中的add component按钮。 6\) 在add component窗口中,添加zepeto script组件。 7 ) 单击zepeto script组件上的attach zepeto script按钮。 8\) 在attach zepeto script窗口中选择您之前创建的characterloader zepeto script文件。 9\) 按如下方式配置 characterloader gameobject。 zepetoscript 不会运行,除非它作为组件添加到场景中的 gameobject。 10\) 接下来,输入你的 zepeto id,将角色加载到场景中。 打开 characterloader 的 zepetoscript 文件,运行脚本编辑器程序。 然后应用下面的示例脚本。 请在 \[zepeto id] 的位置输入您的 zepeto id。 如果您的 zepeto id 是 'abcd',您应该输入为 zepetoplayers instance createplayerwithzepetoid("", "abcd", new spawninfo(), true) 用于加载具有特定 zepeto id 的 zepeto 角色的脚本 用于加载具有特定 zepeto id 的 zepeto 角色的脚本 import { zepetoscriptbehaviour } from 'zepeto script'; import { spawninfo, zepetoplayers, localplayer } from 'zepeto character controller'; export default class characterloader extends zepetoscriptbehaviour { start() { zepetoplayers instance createplayerwithzepetoid("", "\[zepeto id]", new spawninfo(), true); zepetoplayers instance onaddedlocalplayer addlistener(() => { const player localplayer = zepetoplayers instance localplayer; }); } } 11\) 保存脚本后,请返回 unity 编辑器。 请继续执行步骤 4。 如果您使用此代码,您将只能使用特定 zepeto id 的头像进行游戏。 当您启动您的世界时,您需要修改代码,以基于访问您世界的用户的 zepeto id,而不是您在代码中输入的 zepeto id。请使用下面的脚本。 加载已登录id的角色的脚本 加载已登录id的角色的脚本 import { zepetoscriptbehaviour } from 'zepeto script'; import { spawninfo, zepetoplayers, localplayer, zepetocharacter } from 'zepeto character controller'; import { worldservice } from 'zepeto world'; export default class characterloader extends zepetoscriptbehaviour { start() { // grab the user id specified from logging into zepeto through the editor zepetoplayers instance createplayerwithuserid(worldservice userid, new spawninfo(), true); zepetoplayers instance onaddedlocalplayer addlistener(() => { const player localplayer = zepetoplayers instance localplayer; }); } } 此脚本根据已登录的id创建一个zepeto角色,并不接受特定的zepeto id,因此请确保在测试之前先登录unity编辑器。 保存脚本后,请返回unity编辑器。 请继续执行第4步。 请确保客户端脚本中只有一个本地玩家创建代码。 如果创建了多个相同的玩家,可能是createplayerwithuserid()脚本在其他地方被调用。 一个常见的错误是应用多人示例代码,同时保留本指南中的角色创建代码不变,导致角色被创建两次。请通过注释掉一方来管理此问题。 步骤 4 运行 使用屏幕中央的 \[▶︎(播放)] 按钮检查 characterloader 是否正常工作。 加载的角色被称为本地玩家的角色,这意味着用户可以直接在自己的设备上控制的 zepeto 角色。 characterloader 为每个输入事件提供了一个通用的角色控制键映射,适用于不同的设备(pc/移动设备)。因此,加载的角色可以在场景中进行控制,而不受平台的限制。 在 pc 上,角色和相机可以通过鼠标操作。在移动设备上,角色和相机可以通过下面截图所示的虚拟摇杆操作。 👍 以下输入接口支持角色控制: pc 移动:键盘箭头,wasd 跳跃:空格 双重跳跃:(左)shift 缩放:鼠标滚轮 旋转:屏幕拖动 移动设备 移动:(左下角屏幕)虚拟摇杆 跳跃:(右下角屏幕)虚拟摇杆按钮 缩放:(两根手指)屏幕拖动 旋转:(一根手指)屏幕拖动 如果zepeto角色创建功能不正常,请前往 unity菜单 > 项目设置 > 编辑器 > 进入播放模式设置 。 将进入播放模式选项设置为关闭。 步骤 5:更改 zepeto 角色的起始位置 zepeto 角色的起始位置在 unityengine vector3(0,0,0) 创建,除非另行设置。 旋转值也在 unityengine quaternion euler(0,0,0) 的角度生成。 角色生成位置和旋转值使用 zepetoplayers instance createplayerwithuserid(worldservice userid, new spawninfo(), true); 函数的参数 spawninfo() 将被生成。 因此,您可以在调用角色创建函数之前设置 spawninfo() 的期望值,以确保它在特定位置生成。 我们已经在地图上的位置 (0,0,0) 预放置了一个 3d 对象 > 立方体。 如果您将角色的生成位置值更改为以下内容,它将生成在立方体上方。 characterloader import { zepetoscriptbehaviour } from 'zepeto script'; import { spawninfo, zepetoplayers, localplayer, zepetocharacter } from 'zepeto character controller'; import { worldservice } from 'zepeto world'; import { quaternion, vector3 } from 'unityengine'; export default class characterloader extends zepetoscriptbehaviour { start() { // 设置角色生成位置 const spawninfo = new spawninfo(); spawninfo position = new vector3(0,2,0); // 设置角色生成旋转 spawninfo rotation = quaternion euler(0,0,0); // 从通过编辑器登录zepeto获取指定的用户id。 zepetoplayers instance createplayerwithuserid(worldservice userid, spawninfo, true); zepetoplayers instance onaddedlocalplayer addlistener(() => { const player localplayer = zepetoplayers instance localplayer; }); } } 使用屏幕中央的播放按钮检查角色的创建。 如果你改变位置和方向值,你也可以创建一个躺着的角色。 spawninfo 示例 // 设置角色生成位置 const spawninfo = new spawninfo(); spawninfo position = new vector3(2,1,2); // 设置角色生成旋转 spawninfo rotation = quaternion euler(90,0,0);