Menggunakan Sensor Gyro
Saat membuat ZEPETO World, Anda dapat menggunakan Sensor Gyro untuk menerapkan berbagai ide permainan dunia tergantung pada kemiringan perangkat. Panduan ini akan menunjukkan kepada Anda cara memanfaatkan Input.gyro dalam ZEPETOScript.
Mengatur objek
1) Tambahkan Hierarchy > [+] > Objek 3D > Objek Bola ke Scene.
2) Ubah nama objek menjadi Bola dan tambahkan komponen Rigidbody.

Menulis skrip
1) Tambahkan TypeScript dan ganti nama skrip menjadi RollingBall. Tulis skrip contoh seperti yang ditunjukkan di bawah ini.
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() {
// Dapatkan komponen Rigidbody yang terpasang pada GameObject yang sama dengan skrip ini
this._rollingBall = this.GetComponent<Rigidbody>();
// Periksa apakah perangkat mendukung giroskop
if (SystemInfo.supportsGyroscope) {
// Aktifkan giroskop
Input.gyro.enabled = true;
} else {
// Nonaktifkan skrip jika giroskop tidak didukung
console.log("Giroskop tidak didukung pada perangkat ini.");
Input.gyro.enabled = false;
}
}
Update() {
// Periksa apakah giroskop perangkat input diaktifkan
if (Input.gyro.enabled) {
// Baca nilai gyro di sepanjang sumbu x dan z
// Bulatkan ke satu tempat desimal untuk gerakan stabil objek Bola
let gyroValueX = Math.round(Input.gyro.gravity.x * 10) / 10;
let gyroValueZ = Math.round(Input.gyro.gravity.y * 10) / 10;
// Atur kecepatan Bola dengan gyroValueX dan gyroValueZ
this._rollingBall.velocity = new Vector3(gyroValueX * this.velocityMultiplier, 0, gyroValueZ * this.velocityMultiplier);
// Tampilkan nilai gyro saat ini di layar
this.debugText.text = "Input.gyro.gravity : " + Input.gyro.gravity.ToString();
}
}
}
Deskripsi Skrip
- Mengambil komponen Rigidbody yang terpasang pada objek Bola.
- Bulatkan Input.gyro.gravity.x dan Input.gyro.gravity.z nilai untuk mendapatkan nilai gyroValueX, gyroValueZ.
- Berikan kecepatan pada objek Bola dengan mengganti nilai gyroValueX dan gyroValueZ yang dikalikan dengan velocityMultiplier ke dalam kecepatan.
- Nilai Input.gyro.gravity ditampilkan di layar melalui Text UI.
📘 Gyroscope.gravity https://docs.unity3d.com/ScriptReference/Gyroscope-gravity.html
2) Tambahkan RollingBall ZEPETOScript yang Anda tulis ke objek Bola. Di jendela Hierarchy, sambungkan Text UI ke Properti yang ditampilkan di jendela Inspektor ZEPETOScript dengan cara menyeret dan menjatuhkan.

Pengujian di mobile
1) Jalankan dunia contoh dengan pengujian QR mobile.
2) Objek Bola bergerak sesuai dengan kemiringan perangkat.

❗️ Hati-hati Harap dicatat bahwa Input.gyro hanya berfungsi di lingkungan seluler.
Menerapkan contoh
Anda dapat menggerakkan karakter ZEPETO dalam ZEPETO World dengan menerapkan Input.gyro.
1) Tambahkan TypeScript dan ganti nama skrip menjadi GyroMovement. Tulis skrip contoh seperti yang ditunjukkan di bawah ini.
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() {
// Tambahkan pendengar untuk saat pemain lokal ditambahkan
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
this._localCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
});
// Periksa apakah perangkat mendukung giroskop
if (SystemInfo.supportsGyroscope) {
// Aktifkan giroskop
Input.gyro.enabled = true;
}
else {
// Nonaktifkan skrip jika giroskop tidak didukung
console.log("Giroskop tidak didukung di perangkat ini.");
Input.gyro.enabled = false;
}
}
Update() {
if (Input.gyro.enabled) {
// Dapatkan nilai sumbu-x dari gravitasi giroskop\
// Bulatkan ke satu tempat desimal untuk gerakan karakter yang stabil
const gyroValue = Math.round(Input.gyro.gravity.x * 10) / 10;
const direction = new Vector3(0, 0, -gyroValue);
// Gerakkan karakter Lokal
this._localCharacter.Move(direction);
}
}
}
Deskripsi Skrip
- Ketika pemain lokal ditambahkan ke Scene, terima instance karakter ZEPETO.
- Bulatkan nilai Input.gyro.gravity.x untuk mendapatkan nilai gyroValue.
- Gerakkan karakter ZEPETO ke arah sumbu Z dengan menetapkan arah sebagai parameter untuk fungsi Move() .
2) Tambahkan GameObject ke Scene dan ubah namanya menjadi GyroGravity. Tambahkan Skrip GyroMovement ZEPETO yang Anda buat.

3) Saat menjalankan dunia contoh sebagai tes QR mobile, karakter ZEPETO bergerak sesuai dengan kemiringan perangkat.

👍 Tips
- Selain Input.gyro.gravity yang digunakan dalam contoh ini, Anda dapat menggunakan berbagai fungsi Input.gyro .
- Anda dapat menerapkan ini pada berbagai ide. Cobalah merilis dunia yang menyenangkan di ZEPETO!