创造你的世界
用户界面
利用陀螺仪传感器
8 分
在创建zepeto世界时,您可以使用陀螺仪传感器根据设备的倾斜实现各种世界玩法创意。本指南将向您展示如何在zepetoscript中利用input gyro。 📘 陀螺仪 https //docs unity3d com/scriptreference/gyroscope html https //docs unity3d com/scriptreference/gyroscope html 设置对象 1\) 添加层级 > \[+] > 3d对象 > 圆球对象到场景中。 2\) 将对象的名称更改为球,并添加一个rigidbody组件。 编写脚本 1\) 添加 typescript 并将脚本重命名为 rollingball。 编写如下所示的示例脚本。 import { zepetoscriptbehaviour } from 'zepeto script'; import { input, systeminfo, vector3, rigidbody } from 'unityengine'; import { text } from 'unityengine ui'; export default class rollingball extends zepetoscriptbehaviour { public debugtext text; public velocitymultiplier number = 100; private rollingball rigidbody; start() { // 获取附加到与此脚本相同的 gameobject 的 rigidbody 组件 this rollingball = this getcomponent\<rigidbody>(); // 检查设备是否支持陀螺仪 if (systeminfo supportsgyroscope) { // 启用陀螺仪 input gyro enabled = true; } else { // 如果不支持陀螺仪,则禁用脚本 console log("此设备不支持陀螺仪。"); input gyro enabled = false; } } update() { // 检查输入设备的陀螺仪是否启用 if (input gyro enabled) { // 读取 x 和 z 轴的陀螺仪值 // 四舍五入到小数点后一位以稳定 ball 对象的移动 let gyrovaluex = math round(input gyro gravity x 10) / 10; let gyrovaluez = math round(input gyro gravity y 10) / 10; // 使用 gyrovaluex 和 gyrovaluez 设置 ball 的速度 this rollingball velocity = new vector3(gyrovaluex this velocitymultiplier, 0, gyrovaluez this velocitymultiplier); // 在屏幕上显示当前的陀螺仪值 this debugtext text = "input gyro gravity " + input gyro gravity tostring(); } } } 脚本描述 获取附加到球体对象的刚体组件。 将 input gyro gravity x 和 input gyro gravity z 的值四舍五入以获得 gyrovaluex 和 gyrovaluez 值。 通过将 gyrovaluex 和 gyrovaluez 值乘以 velocitymultiplier 赋值给球体对象的速度, 速度 该 input gyro gravity 值通过文本 ui 显示在屏幕上。 📘 陀螺仪 gravity https //docs unity3d com/scriptreference/gyroscope gravity html https //docs unity3d com/scriptreference/gyroscope gravity html 2\) 将您编写的 rollingball zepetoscript 添加到球体对象。 在层级窗口中,通过拖放将文本 ui 连接到 zepetoscript 检查器窗口中显示的属性。 在移动设备上测试 1\) 运行带有 qr 移动测试的示例世界。 2\) 球体对象根据设备倾斜移动。 ❗️ 注意 请注意, input gyro 仅在移动环境中有效。 应用示例 您可以通过应用 input gyro 在 zepeto 世界中移动 zepeto 角色。 1\) 添加 typescript 并将脚本重命名为 gyromovement。 编写如下示例脚本。 import { zepetoscriptbehaviour } from 'zepeto script'; import { input, systeminfo, vector3 } from 'unityengine'; import { zepetocharacter, zepetoplayers, localplayer } from 'zepeto character controller'; export default class gyromovement extends zepetoscriptbehaviour { private localcharacter zepetocharacter; start() { // 添加本地玩家添加时的监听器 zepetoplayers instance onaddedlocalplayer addlistener(() => { this localcharacter = zepetoplayers instance localplayer zepetoplayer character; }); // 检查设备是否支持陀螺仪 if (systeminfo supportsgyroscope) { // 启用陀螺仪 input gyro enabled = true; } else { // 如果不支持陀螺仪,则禁用脚本 console log("此设备不支持陀螺仪。"); input gyro enabled = false; } } update() { if (input gyro enabled) { // 获取陀螺仪重力的 x 轴值\\ // 四舍五入到小数点后一位以稳定角色移动 const gyrovalue = math round(input gyro gravity x 10) / 10; const direction = new vector3(0, 0, gyrovalue); // 移动本地角色 this localcharacter move(direction); } } } 脚本描述 当本地玩家被添加到场景时,接收一个zepeto角色实例。 四舍五入 input gyro gravity x 的值以获取gyrovalue值。 通过将 方向 作为参数分配给 move() 函数来移动zepeto角色在z轴方向。 2\) 将一个gameobject添加到场景并重命名为gyrogravity。添加您创建的gyromovement zepetoscript。 3\) 当作为qr移动测试运行示例世界时,zepeto角色根据设备的倾斜移动。 👍 提示 除了本示例中使用的 input gyro gravity 外,您还可以使用各种 input gyro 函数。 您可以将其应用于各种想法。尝试在zepeto上发布一个有趣的世界!