Implementasi Teleportasi
Mengimplementasikan portal melalui mana karakter ZEPETO dapat teleportasi ke dua titik yang berbeda.



LANGKAH 1 : Mengatur titik target teleportasi

- Implementasikan kode pembuatan karakter ZEPETO di Scene sebagai default.
📘 Silakan merujuk ke panduan berikut. [Buat Karakter ZEPETO]

1) Buat titik untuk teleportasi.
- Untuk panduan ini, kita akan merujuk kepada mereka sebagai titik A dan B.
- Buat Hierarchy > 3D Object > Plane, dan ganti namanya menjadi Plane_A.


2) Tambahkan objek Portal yang akan memulai teleportasi.
- Pastikan untuk menambahkan Collider untuk berinteraksi dengan objek tersebut.
- Sesuaikan ukuran area untuk mendeteksi tabrakan.
- Pastikan untuk memeriksa Is Trigger.


3) Buat total 2 titik teleportasi dengan cara yang sama.




- Sesuaikan Posisi agar titik-titik tidak tumpang tindih.


LANGKAH 2 : Tulis skrip

1) Buat Proyek > Buat > ZEPETO > TypeScript dan ganti namanya menjadi Teleport.
2) Tulis skrip contoh seperti di bawah ini.
- Logika untuk teleportasi dengan destinationObject ketika terjadi tabrakan dengan karakter ZEPETO terdeteksi di area collider objek yang terpasang skrip.
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 {
// Objek tujuan untuk teleportasi
public destinationObject: GameObject;
private _localCharacter: ZepetoCharacter;
Start() {
// Temukan pemain lokal dan atur ke _localCharacter
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
this._localCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
});
}
OnTriggerEnter(collider: Collider) {
// Jangan jalankan fungsi jika _localCharacter belum diatur atau jika gameObject yang bertabrakan bukan _localCharacter
if (this._localCharacter == null || collider.gameObject != this._localCharacter.gameObject) {
return;
}
// Teleportasi _localCharacter ke posisi destinationObject
this._localCharacter.Teleport(this.destinationObject.transform.position, Quaternion.identity);
}
}
3) Setelah Anda selesai menulis skrip, tambahkan skrip ke objek Portal yang akan memulai teleportasi.
4) Di inspector, tetapkan Objek Tujuan.
- Objek Tujuan : objek portal untuk tiba di akhir teleportasi.


LANGKAH 3 : Jalankan

Teleport karakter ZEPETO dari titik A ke titik B ketika dekat dengan portal.


- Panduan ini hanya menangani teleportasi Pemain Lokal yang saya manipulasi.
- Dalam kasus dunia multiplayer, sinkronisasi lokasi pemain lain juga diperlukan.
- Menggunakan komponen sinkronisasi dari contoh multiplayer, sinkronisasi posisi mudah untuk diterapkan.

📘 Contoh Multiplay - Komponen Multiplay Zepeto https://github.com/naverz/zepeto-multiplay-example/tree/main/Assets/Zepeto Multiplay Component