สร้างโลกของคุณเอง
ผู้เล่นและตัวละคร: ขั้นสูง
การใช้ V-pad
18นาที
v pad ต้องการ ui ควบคุมเพื่อจัดการตัวละครภายในโลก zepeto world สร้าง ui ควบคุมที่เรียกว่า v pad ในระหว่างการทำงานผ่าน zepetoplayers v pad สามารถทำฟังก์ชันต่อไปนี้ขึ้นอยู่กับพื้นที่ที่ผู้เล่นสัมผัสบนหน้าจอ 1\) หน้าจอสัมผัส เมื่อคุณสัมผัสพื้นที่แผ่นสัมผัสและเลื่อนขึ้น ลง ซ้าย หรือ ขวา ผู้เล่นท้องถิ่นจะเคลื่อนที่ตามแกน xz เมื่อคุณแตะภายในพื้นที่แผ่นสัมผัส แผ่นสัมผัสจะปรากฏที่ตำแหน่งที่แตะ และจะหายไปเมื่อการสัมผัสเสร็จสิ้น พื้นที่แผ่นสัมผัสเริ่มต้นมีดังนี้ โหมดหน้าจอ ขนาดผ้าใบ ขนาดพื้นที่ แนวนอน 1334 x 750 600 x 450 แนวตั้ง 750 x 1334 375 x 500 2\) ปุ่มกระโดด การกดปุ่มจะทำให้ผู้เล่นท้องถิ่นกระโดด ค่า高度ของการกระโดดสามารถเปลี่ยนแปลงได้ผ่าน zepeto players > character > jump power 👍 เคล็ดลับ พื้นที่แพดสามารถเปลี่ยนแปลงได้โดยการตั้งค่าพื้นที่ของพรีแฟบที่ลงทะเบียนใน control ของ zepeto players เปลี่ยนขนาดของพื้นที่ตามลำดับต่อไปนี้ เลือกพรีแฟบเริ่มต้นที่ลงทะเบียนใน control ของ zepeto players และคัดลอกพรีแฟบโดยการลากและวางลงใน assets เลือกวัตถุแพดภายในพรีแฟบที่คัดลอกมา เปลี่ยนความกว้างและความสูงของคอมโพเนนต์ rect transform ให้เป็นขนาดที่ต้องการ โครงสร้างวัตถุของ v pad ที่สร้างขึ้นในระหว่างการทำงานมีดังนี้ 1\) แผ่น วัตถุ ui หน้าจอที่สามารถเคลื่อนที่ตำแหน่งตัวละครได้ พื้นหลัง รูปภาพพื้นหลังสีดำโปร่งแสงที่แสดงพื้นที่แผ่น handleorigin พื้นที่วงกลมด้านนอกของแผ่น handleorigin จะเปลี่ยนตำแหน่งขึ้นอยู่กับตำแหน่งที่สัมผัส handle พื้นที่วงกลมด้านในของแผ่น เมื่อ handle ถูกสัมผัสและลาก ตำแหน่งของมันจะเปลี่ยนและจะไม่ออกจากพื้นที่ handleorigin 2) กระโดด วัตถุปุ่มที่อนุญาตให้ตัวละครกระโดด ขึ้น วัตถุภาพกระโดดภายในปุ่มกระโดด วิธีการรับค่าข้อมูลจาก v pad เพื่อรับค่าข้อมูลจาก v pad คุณต้องเข้าถึงส่วนประกอบ zepetoscreentouchpad และ zepetoscreenbutton ที่สร้างขึ้นในระหว่างการทำงานและลงทะเบียนเหตุการณ์ เหตุการณ์ zepetoscreentouchpad ส่วนประกอบ zepetoscreenbutton เป็นส่วนประกอบปุ่มกระโดดของตัวละคร เหตุการณ์ที่เข้าถึงได้รวมถึง เหตุการณ์ คำอธิบาย onpointerdownevent เหตุการณ์นี้เกิดขึ้นเมื่อผู้ใช้กด v pad ondragevent เหตุการณ์นี้เกิดขึ้นในขณะที่ผู้ใช้กด v pad onpointerupevent เหตุการณ์นี้เกิดขึ้นเมื่อผู้ใช้ปล่อย v pad zepetoscreenbutton เหตุการณ์ zepetoscreenbutton คอมโพเนนต์เป็นคอมโพเนนต์ปุ่มกระโดดของตัวละคร เหตุการณ์ที่เข้าถึงได้รวมถึง เหตุการณ์ คำอธิบาย onpointdownevent เหตุการณ์นี้เกิดขึ้นเมื่อผู้ใช้กดปุ่มกระโดด onpointupevent เหตุการณ์นี้เกิดขึ้นเมื่อผู้ใช้ปล่อยปุ่มกระโดด สคริปต์ตัวอย่าง สคริปต์ต่อไปนี้เป็นตัวอย่างการแสดงค่าตำแหน่ง v pad ไปยังคอนโซลเมื่อผู้ใช้กดแผ่นสัมผัส getvpadinput import { object } from 'unityengine'; import { zepetoplayers, zepetoscreenbutton, zepetoscreentouchpad } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script' export default class getvpadinput extends zepetoscriptbehaviour { start() { // เพิ่มผู้ฟังสำหรับเหตุการณ์เมื่อผู้เล่นท้องถิ่นถูกเพิ่ม zepetoplayers instance onaddedlocalplayer addlistener(() => { this getpadtouch(); this getjumptouch(); }); } getpadtouch() { // ค้นหาอ็อบเจ็กต์ zepetoscreentouchpad ในฉาก const touchpad = object findobjectoftype\<zepetoscreentouchpad>(); // เพิ่มผู้ฟังสำหรับเหตุการณ์ลากบนทัชแพด touchpad ondragevent addlistener(() => { // บันทึกตำแหน่งของมือสัมผัสเมื่อเกิดเหตุการณ์ลาก console log(touchpad touchhandle transform position); }); } getjumptouch() { // ค้นหาอ็อบเจ็กต์ zepetoscreenbutton ในฉาก const screenbutton = object findobjectoftype\<zepetoscreenbutton>(); // เพิ่มผู้ฟังไปยัง onpointdownevent ของ screenbutton // ผู้ฟังนี้บันทึก "ปุ่มกระโดดกดลง" เมื่อปุ่มถูกกด screenbutton onpointdownevent addlistener(() => { console log("ปุ่มกระโดดกดลง"); }); // เพิ่มผู้ฟังไปยัง onpointupevent ของ screenbutton // ผู้ฟังนี้บันทึก "ปุ่มกระโดดปล่อยขึ้น" เมื่อปุ่มถูกปล่อย screenbutton onpointupevent addlistener(() => { console log("ปุ่มกระโดดปล่อยขึ้น"); }); } } คำอธิบายสคริปต์ ลงทะเบียนผู้ฟังเหตุการณ์ที่เรียกใช้ getpadtouch() และ getjumptouch() ฟังก์ชันเมื่อผู้เล่นท้องถิ่นถูกเพิ่มลงในฉาก ฟังก์ชัน getpadtouch() เป็นฟังก์ชันที่ประมวลผลเหตุการณ์สัมผัสที่เกิดขึ้นบนทัชแพด ใช้ object findobjectoftype\<zepetoscreentouchpad>() เพื่อค้นหาออบเจ็กต์ zepetoscreentouchpad ในฉาก เพิ่มผู้ฟังสำหรับ ondragevent ผู้ฟังนี้จะถูกเรียกใช้เมื่อเกิดเหตุการณ์ลากบนทัชแพด ภายในผู้ฟัง ตำแหน่งของที่จับสัมผัสจะถูกส่งออกไปยังคอนโซล ฟังก์ชัน getjumptouch() เป็นฟังก์ชันที่ประมวลผลเหตุการณ์ที่เกิดจากปุ่มกระโดด ใช้ object findobjectoftype\<zepetoscreenbutton>() เพื่อค้นหาออบเจ็กต์ zepetoscreenbutton ในฉาก เพิ่มผู้ฟังสำหรับ onpointdownevent และ onpointupevent ของปุ่มกระโดด ภายใน onpointdownevent , จะมีการส่งออกบันทึกที่เรียกว่า jump button down ทุกครั้งที่ปุ่มกระโดดถูกกด ภายใน onpointupevent , จะมีการส่งออกบันทึกที่เรียกว่า jump button up ทุกครั้งที่ปุ่มกระโดดถูกปล่อย ถ้าคุณรันมันโดยการกดปุ่มเล่น คุณจะเห็นค่าตำแหน่ง v pad แสดงในคอนโซลล็อกทุกครั้งที่คุณกด v pad นอกจากนี้คุณยังจะเห็นคอนโซลล็อกแสดงทุกครั้งที่คุณกดหรือปล่อยปุ่มกระโดด ปรับแต่ง v pad คุณสามารถควบคุม v pad โดยใช้ screentouchpad และ screenbutton คุณสามารถเปิด/ปิด v pad จาก uicontroller touchpad horizontal และ uicontroller touchpad vertical prefab ด้านล่างคือรูปลักษณ์เมื่อ touch pad ถูกปิด คุณสามารถปิดปุ่มกระโดดได้ในลักษณะเดียวกัน การตั้งค่าการกระโดดสองครั้ง คุณสามารถเพิ่มฟังก์ชันการกระโดดสองครั้งให้กับปุ่มกระโดดของ v pad หรือใช้ฟังก์ชันปุ่มกระโดดสองครั้งที่กำหนดเอง เพื่อเปิดใช้งานฟีเจอร์การกระโดดสองครั้ง ให้เปิดใช้งาน custom parameters > double jump checkbox ในส่วน character ของ zepetoplayers component ความสูงของการกระโดดสองครั้งสามารถตั้งค่าได้โดยการปรับค่าพลังงาน มีสามวิธีในการใช้ฟีเจอร์การกระโดดสองครั้งบน v pad 1\) ตั้งค่าผ่าน v pad prefab เมื่อใช้การกระโดดสองครั้งกับปุ่ม v pad ให้ตั้งค่าดังนี้ คลิกที่ uicontroller touchpad vertical หรือ uicontroller touchpad horizontal prefab คุณจะถูกย้ายไปยังโฟลเดอร์ที่ prefab ดั้งเดิมตั้งอยู่ภายใต้โฟลเดอร์ packages ในแผงโปรเจกต์ คัดลอก uicontroller touchpad vertical หรือ uicontroller touchpad horizontal prefab โดยการลากและวางลงในโฟลเดอร์ assets ❗️ ระวัง prefab ดั้งเดิมในโฟลเดอร์ packages ไม่สามารถแก้ไขได้ ดังนั้นคุณต้องคัดลอกไปยังโฟลเดอร์ assets เพื่อทำการแก้ไข หากคุณพยายามแก้ไข prefab ดั้งเดิม จะเกิดข้อผิดพลาด immutable prefab ขึ้น ดับเบิลคลิกที่ prefab uicontroller touchpad vertical หรือ uicontroller touchpad horizontal ในรายการ prefab ที่คัดลอก หรือกดปุ่ม open prefab ในหน้าต่าง inspector เพื่อแก้ไข prefab เลือกวัตถุ jump จากวัตถุย่อยของ prefab ในส่วนของปุ่มหน้าจอ zepeto ของวัตถุ jump ให้กดปุ่ม + ใน on point down event() และลงทะเบียนเหตุการณ์ดังนี้ on point down event() เฉพาะเวลาทำงาน เลือกวัตถุ ลงทะเบียน uicontroller touchpad vertical หรือ uicontroller touchpad horizontal ฟังก์ชันเหตุการณ์ คลิกที่ส่วน no function และตั้งค่าเป็น uizepetoplayercontrol > doublejump() ฟังก์ชัน หากการตั้งค่าเป็นดังต่อไปนี้ จะถือว่าประสบความสำเร็จ 2\) การตั้งค่าด้วยสคริปต์ สคริปต์นี้ช่วยให้ตัวละครสามารถกระโดดสองครั้งได้ตามการตอบสนองจากปุ่มกระโดดของ v pad import { zepetoscriptbehaviour } from 'zepeto script'; import { object } from 'unityengine'; import { zepetoscreenbutton, characterstate, zepetoplayers } from 'zepeto character controller'; export default class dobulejump extends zepetoscriptbehaviour { start() { // ฟังเมื่อผู้เล่นท้องถิ่นถูกเพิ่มและดำเนินการฟังก์ชัน lambda ที่กำหนด zepetoplayers instance onaddedlocalplayer addlistener(() => { // ดึงตัวละครของผู้เล่นท้องถิ่น const zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; // ค้นหาวัตถุประเภท zepetoscreenbutton ในฉาก const screenbutton = object findobjectoftype\<zepetoscreenbutton>(); // เพิ่มผู้ฟังสำหรับ onpointdownevent ของปุ่มหน้าจอเพื่อจัดการการกระโดด screenbutton onpointdownevent addlistener(() => { // หากสถานะปัจจุบันของตัวละครคือ jump ให้เรียกใช้การกระโดดสองครั้ง if (zepetocharacter currentstate === characterstate jump) { zepetocharacter doublejump(); } }); }) } } คำอธิบายสคริปต์ zepetoplayers instance onaddedlocalplayer addlistener() ลงทะเบียนผู้ฟังที่ถูกเรียกใช้เมื่อผู้เล่นท้องถิ่นถูกเพิ่มเข้ามาในเกม สิ่งนี้ใช้เพื่อกำหนดฟีเจอร์การกระโดดสองครั้งที่จะถูกเพิ่มเมื่อผู้เล่นท้องถิ่นถูกเพิ่มเข้ามา zepetoplayers instance localplayer zepetoplayer character ให้การเข้าถึงตัวละครของผู้เล่นท้องถิ่น object findobjectoftype() ค้นหาวัตถุประเภท zepetoscreenbutton ในฉากปัจจุบันและกำหนดให้กับการกระโดด screenbutton onpointdownevent addlistener() เพิ่มผู้ฟังไปยัง onpointdownevent ของปุ่มหน้าจอ ผู้ฟังนี้รอการสัมผัสหน้าจอหรือเหตุการณ์คลิกและเริ่มการกระโดดหรือการกระโดดสองครั้ง ภายในผู้ฟัง คำสั่ง if จะตรวจสอบว่าสถานะปัจจุบันของตัวละครคือ characterstate jump หรือไม่ หากเป็นจริง จะดำเนินการ zepetocharacter doublejump() หลังจากเขียนสคริปต์แล้ว ให้สร้าง gameobject ว่างในฉากและเพิ่มสคริปต์ dobulejump ts เป็นคอมโพเนนต์ 3\) การตั้งค่าผ่านปุ่มที่กำหนดเอง หากคุณเลือกที่จะสร้างและใช้ปุ่มของคุณเอง โปรดเพิ่มสคริปต์ตามที่แสดงด้านล่างนี้ สคริปต์นี้เพิ่มฟังก์ชันการกระโดดและการกระโดดสองครั้งให้กับปุ่มที่ผู้ใช้กำหนด import { zepetoscriptbehaviour } from 'zepeto script'; import { button } from 'unityengine ui'; import { characterstate, zepetocharacter, zepetoplayers } from 'zepeto character controller'; export default class jumpbutton extends zepetoscriptbehaviour { public shotbutton button; private zepetocharacter zepetocharacter; start() { // สร้างตัวละคร zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); // เพิ่มส่วนประกอบสคริปต์ this shotbutton onclick addlistener(() => { if (this zepetocharacter currentstate === characterstate jump) { this zepetocharacter doublejump(); } else { this zepetocharacter jump(); } }); } } คำอธิบายสคริปต์ zepetoplayers instance onaddedlocalplayer addlistener() ลงทะเบียนฟังก์ชันที่จะถูกเรียกใช้เมื่อผู้เล่นท้องถิ่นถูกเพิ่มเข้ามาในเกม this shotbutton onclick addlistener() เพิ่มฟังก์ชันที่จะถูกเรียกใช้เมื่อ shotbutton ถูกคลิก เมื่อฟังก์ชันถูกเรียกใช้ มันจะตรวจสอบว่าตัวละครอยู่ในสถานะกระโดดหรือไม่และจะทำการกระโดดหรือกระโดดสองครั้ง ถ้าตัวละครอยู่ในสถานะกระโดด, this zepetocharacter doublejump() จะถูกเรียกใช้เพื่อทำการกระโดดสองครั้ง; มิฉะนั้น, this zepetocharacter jump() จะถูกเรียกใช้เพื่อทำการกระโดด หลังจากเขียนสคริปต์แล้ว ให้สร้าง gameobject ว่างในฉากและเพิ่มสคริปต์ jumpbutton ts เป็นคอมโพเนนต์ สุดท้าย ให้กำหนดปุ่มกระโดดให้กับ shot button ใน inspector