การนำการเคลื่อนย้ายทางไกลไปใช้งาน
9 นาที
ดำเนินการพอร์ทัลที่ตัวละคร ZEPETO สามารถโทรจิตไปยังสองจุดที่แตกต่างกัน

ขั้นตอนที่ 1 : ตั้งค่าจุดหมายปลายทางการโทรจิต
- ดำเนินการรหัสการสร้างตัวละคร ZEPETO ในฉากเป็นค่าเริ่มต้น
📘 กรุณาอ้างอิงจากคู่มือต่อไปนี้[สร้างตัวละคร ZEPETO]
1) สร้างจุดเพื่อโทรจิตไปยัง
- สำหรับคู่มือนี้ เราจะเรียกพวกเขาว่าจุด A และ B
- สร้าง Hierarchy > 3D Object > Plane และเปลี่ยนชื่อเป็น Plane_A

2) เพิ่มวัตถุพอร์ทัลที่จะเริ่มการเทเลพอร์ต.
- ตรวจสอบให้แน่ใจว่าได้เพิ่ม Collider เพื่อโต้ตอบกับวัตถุ.
- ปรับขนาดของพื้นที่เพื่อตรวจจับการชนกัน.
- ตรวจสอบให้แน่ใจว่าได้เลือก Is Trigger.

3) สร้างจุดเทเลพอร์ตทั้งหมด 2 จุดในลักษณะเดียวกัน.

ตัวอย่างของจุดเทเลพอร์ต A

ตัวอย่างของจุดเทเลพอร์ต B
- ปรับตำแหน่งเพื่อให้จุดไม่ทับซ้อนกัน.

ขั้นตอนที่ 2 : เขียนสคริปต์
1) สร้างโปรเจกต์ > สร้าง > ZEPETO > TypeScript และเปลี่ยนชื่อเป็น Teleport.
2) เขียนสคริปต์ตัวอย่างตามด้านล่าง.
- ตรรกะในการเทเลพอร์ตด้วย destinationObject เมื่อมีการชนกับตัวละคร ZEPETO ในพื้นที่ชนของวัตถุที่สคริปต์ถูกแนบอยู่.
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 {
// วัตถุปลายทางที่จะถูกเทเลพอร์ตไป
public destinationObject: GameObject;
private _localCharacter: ZepetoCharacter;
Start() {
// ค้นหาผู้เล่นท้องถิ่นและตั้งค่าให้กับ _localCharacter
ZepetoPlayers.instance.OnAddedLocalPlayer.AddListener(() => {
this._localCharacter = ZepetoPlayers.instance.LocalPlayer.zepetoPlayer.character;
});
}
OnTriggerEnter(collider: Collider) {
// ไม่ต้องดำเนินการฟังก์ชันหาก _localCharacter ยังไม่ได้ตั้งค่า หรือหาก gameObject ที่ชนไม่ใช่ _localCharacter
if (this._localCharacter == null || collider.gameObject != this._localCharacter.gameObject) {
return;
}
// เทเลพอร์ต _localCharacter ไปยังตำแหน่งของ destinationObject
this._localCharacter.Teleport(this.destinationObject.transform.position, Quaternion.identity);
}
}
3) หลังจากที่คุณเขียนสคริปต์เสร็จแล้ว ให้เพิ่มสคริปต์ไปยังวัตถุ Portal ที่จะเริ่มการเทเลพอร์ต.
4) ใน Inspector ให้กำหนดวัตถุปลายทาง.
- วัตถุปลายทาง : วัตถุพอร์ทัลที่จะไปถึงจุดสิ้นสุดของการเทเลพอร์ต.

ขั้นตอนที่ 3 : รัน
เทเลพอร์ตตัวละคร ZEPETO จากจุด A ไปยังจุด B เมื่อมันอยู่ใกล้พอร์ทัล

- คู่มือนี้จัดการเฉพาะการเทเลพอร์ตของผู้เล่นท้องถิ่นที่ฉันควบคุมเท่านั้น
- ในกรณีของโลกหลายผู้เล่น การซิงโครไนซ์ตำแหน่งของผู้เล่นคนอื่นจะต้องทำเพิ่มเติม
- การใช้ส่วนประกอบการซิงโครไนซ์จากตัวอย่างหลายผู้เล่น การซิงโครไนซ์ตำแหน่งทำได้ง่าย
📘 ตัวอย่างการเล่นหลายคน - ส่วนประกอบการเล่นหลายคนของ Zepeto https://github.com/naverz/zepeto-multiplay-example/tree/main/Assets/Zepeto Multiplay Component