สร้างโลกของคุณเอง
ส่วนต่อประสานกับผู้ใช้
การใช้เซ็นเซอร์ไจโร
8นาที
เมื่อสร้าง zepeto world คุณสามารถใช้ gyro sensor เพื่อใช้แนวคิดการเล่นในโลกต่างๆ ขึ้นอยู่กับการเอียงของอุปกรณ์ คู่มือนี้จะแสดงให้คุณเห็นวิธีการใช้ input gyro ภายใน zepetoscript 📘 ไจโรสโคป https //docs unity3d com/scriptreference/gyroscope html https //docs unity3d com/scriptreference/gyroscope html การตั้งค่าอ็อบเจ็กต์ 1\) เพิ่ม hierarchy > \[+] > 3d object > sphere object ลงใน scene 2\) เปลี่ยนชื่ออ็อบเจ็กต์เป็น ball และเพิ่มคอมโพเนนต์ 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() { // รับคอมโพเนนต์ rigidbody ที่แนบอยู่กับ gameobject เดียวกันกับสคริปต์นี้ this rollingball = this getcomponent\<rigidbody>(); // ตรวจสอบว่าอุปกรณ์รองรับ gyroscope หรือไม่ if (systeminfo supportsgyroscope) { // เปิดใช้งาน gyroscope input gyro enabled = true; } else { // ปิดสคริปต์หากไม่รองรับ gyroscope console log("ไม่รองรับ gyroscope บนอุปกรณ์นี้ "); input gyro enabled = false; } } update() { // ตรวจสอบว่า gyroscope ของอุปกรณ์อินพุตเปิดใช้งานอยู่หรือไม่ if (input gyro enabled) { // อ่านค่าจาก gyroscope ตามแกน x และ z // ปัดเศษเป็นทศนิยมหนึ่งตำแหน่งเพื่อให้การเคลื่อนไหวของวัตถุ ball มีเสถียรภาพ let gyrovaluex = math round(input gyro gravity x 10) / 10; let gyrovaluez = math round(input gyro gravity y 10) / 10; // ตั้งค่าความเร็วของ ball ด้วย gyrovaluex และ gyrovaluez this rollingball velocity = new vector3(gyrovaluex this velocitymultiplier, 0, gyrovaluez this velocitymultiplier); // แสดงค่าปัจจุบันของ gyro บนหน้าจอ this debugtext text = "input gyro gravity " + input gyro gravity tostring(); } } } คำอธิบายสคริปต์ ดึงคอมโพเนนต์ rigidbody ที่แนบมากับวัตถุ ball ปัดเศษ input gyro gravity x และ input gyro gravity z เพื่อให้ได้ค่า gyrovaluex, gyrovaluez ให้ความเร็วกับวัตถุ ball โดยการแทนที่ค่า gyrovaluex และ gyrovaluez ที่คูณด้วย velocitymultiplier ลงใน velocity ค่า input gyro gravity จะแสดงบนหน้าจอผ่าน text ui 📘 gyroscope gravity https //docs unity3d com/scriptreference/gyroscope gravity html https //docs unity3d com/scriptreference/gyroscope gravity html 2\) เพิ่ม rollingball zepetoscript ที่คุณเขียนลงในวัตถุ ball ในหน้าต่าง hierarchy เชื่อมต่อ text ui กับ property ที่แสดงในหน้าต่าง inspector ของ zepetoscript โดยการลากและวาง การทดสอบบนมือถือ 1\) รันโลกตัวอย่างด้วยการทดสอบ qr บนมือถือ 2\) วัตถุบอลเคลื่อนที่ตามการเอียงของอุปกรณ์ ❗️ ระวัง โปรดทราบว่า input gyro ใช้งานได้เฉพาะในสภาพแวดล้อมมือถือเท่านั้น การใช้ตัวอย่าง คุณสามารถเคลื่อนที่ตัวละคร zepeto ภายใน zepeto world โดยการใช้ input gyro 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; }); // ตรวจสอบว่าอุปกรณ์รองรับ gyroscope หรือไม่ if (systeminfo supportsgyroscope) { // เปิดใช้งาน gyroscope input gyro enabled = true; } else { // ปิดการใช้งานสคริปต์หากไม่รองรับ gyroscope console log("ไม่รองรับ gyroscope บนอุปกรณ์นี้ "); input gyro enabled = false; } } update() { if (input gyro enabled) { // รับค่าระนาบ x ของแรงโน้มถ่วง gyroscope\\ // ปัดเศษเป็นทศนิยมหนึ่งตำแหน่งเพื่อให้การเคลื่อนไหวของตัวละครมีเสถียรภาพ 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 เคลื่อนที่ตัวละคร zepeto ในทิศทางแกน z โดยการกำหนด direction เป็นพารามิเตอร์ให้กับ move() ฟังก์ชัน 2\) เพิ่ม gameobject ลงในฉากและเปลี่ยนชื่อเป็น gyrogravity เพิ่มสคริปต์ gyromovement zepeto ที่คุณสร้างขึ้น 3\) เมื่อรันโลกตัวอย่างเป็นการทดสอบ qr บนมือถือ ตัวละคร zepeto จะเคลื่อนที่ตามการเอียงของอุปกรณ์ 👍 เคล็ดลับ นอกจาก input gyro gravity ที่ใช้ในตัวอย่างนี้ คุณสามารถใช้ฟังก์ชันต่าง ๆ ของ input gyro ได้ คุณสามารถนำไปใช้กับแนวคิดต่าง ๆ ได้ ลองปล่อยโลกสนุก ๆ บน zepeto!