การสร้างตัวละคร Zepeto
- ในหน้าต่าง Hierarchy ให้คลิกที่ 3D Object → Plane.
- ตั้งค่าตำแหน่งของ Plane เป็น X: 0, Y: 0, Z: 0 และตั้งค่าขนาดให้ใหญ่พอเป็น X: 10, Y: 1, Z: 10.
👍 เคล็ดลับ
- Plane เป็นพื้นฐานที่ง่ายที่สุดสำหรับการทดสอบ.
- ไม่สำคัญว่าคุณจะใช้สิ่งใดตราบใดที่มันเป็นวัตถุที่มี Collider.
- เมื่อคุณคุ้นเคยกับการสร้างโลกมากขึ้น คุณสามารถสร้างแผนที่ที่เจ๋งเพื่อแทนที่พื้นได้.
- หากไม่มีแพลตฟอร์ม ตัวละครจะตกลงทันทีที่ถูกสร้างและจะไม่สามารถมองเห็นได้.
ในหน้าต่าง Hierarchy ให้เลือก ZEPETO → แท็บ ZepetoPlayers.
วัตถุที่เรียกว่า ZepetoPlayers จะถูกสร้างขึ้นโดยอัตโนมัติตามที่แสดงด้านล่าง ZepetoPlayers เป็นส่วนประกอบที่จัดการโมดูลตัวควบคุมตัวละครภายในโลก.
ตั้งค่าค่าต่างๆ สำหรับการควบคุมตัวละครและฟังก์ชันที่เกี่ยวข้องสามารถตั้งค่าได้ในหน้าต่าง Inspector.
- คุณสามารถตั้งค่าต่างๆ เช่น การตั้งค่ากล้อง ZEPETO ความเร็วในการเคลื่อนที่ของตัวละคร ความสูงในการกระโดด ฯลฯ ได้ตามปกติ
- ในตัวอย่างนี้ เราจะใช้ค่าตั้งต้น
📘 สำหรับการตั้งค่าที่ละเอียด โปรดดูที่คู่มือ ZEPETO Character Controller.ตัวควบคุมตัวละคร ZEPETO
ในการโหลดตัวละคร คุณต้องสร้างไฟล์ ZEPETOScript ใหม่
1) ในแผง [Project] ให้เลือกเมนู [+] ที่มุมซ้ายบนหรือเลือก Assets → Create → ZEPETO → TypeScript.
2) เมื่อไฟล์ ZEPETOScript ถูกสร้างขึ้น กรุณาใส่ชื่อว่า CharacterController ไฟล์สคริปต์จะถูกสร้างขึ้นตามที่แสดงด้านล่าง
3) ใน Hierarchy → เมนู [+] → รันเมนู Create Empty
4) เมื่อสร้าง Empty GameObject ให้เขียนว่า CharacterController GameObject จะถูกสร้างขึ้นตามที่แสดงด้านล่าง
5) ลากไฟล์ CharacterController ZEPETOScript ที่สร้างขึ้นก่อนหน้านี้ไปยัง GameObject เป็น Component.
- ZEPETOScript จะไม่ทำงานหากไม่ได้เพิ่มเป็น component ใน GameObject ใน Scene.
6) ก่อนอื่น ให้ป้อน ZEPETO id ของคุณเพื่อโหลดตัวละครเข้าสู่ Scene. เปิดไฟล์ CharacterController ZEPETOScript และเรียกใช้โปรแกรมแก้ไขสคริปต์. จากนั้นให้ใช้สคริปต์ตัวอย่างด้านล่าง.
- กรุณาใส่ ZEPETO ID ของคุณในที่ที่เขียนว่า [ZEPETO_ID].
- หาก ZEPETO ID ของคุณคือ 'abcd' คุณควรใส่มันเป็น ZepetoPlayers.instance.CreatePlayerWithZepetoId("", "abcd", new SpawnInfo(), true)
7) หลังจากบันทึกสคริปต์แล้ว กรุณากลับไปที่ Unity editor.
- กรุณาไปที่การดำเนินการของขั้นตอนที่ 3.
- หากคุณใช้โค้ดนี้ คุณจะเล่นได้เฉพาะกับอวตารของ ZEPETO ID ที่เฉพาะเจาะจงเท่านั้น.
- เมื่อคุณเปิดโลกของคุณ คุณจะต้องปรับเปลี่ยนโค้ดของคุณให้ขึ้นอยู่กับ ZEPETO ID ของผู้ใช้ที่เข้าถึงโลกของคุณ แทนที่จะเป็น ZEPETO ID ที่คุณป้อนในโค้ดของคุณ กรุณาใช้สคริปต์ด้านล่างนี้.
- สคริปต์นี้สร้างตัวละคร ZEPETO ตาม ID ที่เข้าสู่ระบบและไม่รับ ID ZEPETO เฉพาะ ดังนั้นโปรดตรวจสอบให้แน่ใจว่าคุณได้เข้าสู่ระบบใน Unity editor ก่อนทำการทดสอบ
- หลังจากบันทึกสคริปต์แล้ว โปรดกลับไปที่ Unity editor
- โปรดดำเนินการต่อไปยังขั้นตอนที่ 3
- โปรดตรวจสอบให้แน่ใจว่ามีโค้ดการสร้างผู้เล่นท้องถิ่นเพียงหนึ่งเดียวในสคริปต์ของไคลเอนต์
- หากมีการสร้างผู้เล่นที่เหมือนกันหลายคน สคริปต์ CreatePlayerWithUserId() อาจถูกเรียกจากที่อื่น
- ข้อผิดพลาดทั่วไปคือการใช้โค้ดตัวอย่างหลายผู้เล่นในขณะที่ปล่อยให้โค้ดการสร้างตัวละครในคู่มือนี้ไม่เปลี่ยนแปลง ส่งผลให้ตัวละครถูกสร้างขึ้นสองครั้ง โปรดจัดการโดยการคอมเมนต์ออกด้านหนึ่ง
ใช้ปุ่ม [▶︎(เล่น)] ที่กลางหน้าจอเพื่อตรวจสอบว่า CharacterController ทำงานได้อย่างถูกต้องหรือไม่
ตัวละครที่โหลดเข้ามาจะถูกเรียกว่า ตัวละครของผู้เล่นท้องถิ่น ซึ่งหมายถึงตัวละคร ZEPETO ที่ผู้ใช้สามารถควบคุมได้โดยตรงบนอุปกรณ์ของตนเอง
CharacterController มีการแมพปุ่มควบคุมตัวละครที่ใช้ร่วมกันสำหรับแต่ละเหตุการณ์การป้อนข้อมูลที่ตรงกับอุปกรณ์ (PC/มือถือ) ดังนั้นตัวละครที่โหลดเข้ามาสามารถควบคุมได้ในฉากโดยไม่คำนึงถึงแพลตฟอร์ม
บน PC ตัวละครและกล้องสามารถทำงานได้ด้วยเมาส์ บนอุปกรณ์มือถือ ตัวละครและกล้องสามารถทำงานได้ด้วยแผ่นควบคุมเสมือนตามที่แสดงในภาพหน้าจอด้านล่าง
👍 อินเตอร์เฟซการป้อนข้อมูลต่อไปนี้รองรับสำหรับการควบคุมตัวละคร: PC
- เคลื่อนที่: ลูกศรบนคีย์บอร์ด, WASD
- กระโดด: Space
- กระโดดสองครั้ง: (ซ้าย) Shift
- ซูม: ล้อเมาส์
- หมุน: ลากหน้าจอ
มือถือ
- เคลื่อนที่: (มุมล่างซ้ายของหน้าจอ) แผ่นเสมือน
- กระโดด: (มุมล่างขวาของหน้าจอ) ปุ่มแผ่นเสมือน
- ซูม: (สองนิ้ว) ลากหน้าจอ
- หมุน: (นิ้วเดียว) ลากหน้าจอ
หากการสร้างตัวละคร ZEPETO ไม่ทำงานอย่างถูกต้อง โปรดไปที่ เมนู Unity > การตั้งค่าโปรเจกต์ > บรรณาธิการ > ตั้งค่าโหมดเล่น.
- ตั้งค่าตัวเลือกโหมดเล่นให้เป็นปิด.
ตำแหน่งเริ่มต้นของตัวละคร ZEPETO ถูกสร้างขึ้นที่ UnityEngine.Vector3(0,0,0) เว้นแต่จะตั้งค่าอื่น.
ค่าการหมุนก็ถูกสร้างขึ้นที่มุมของ UnityEngine.Quaternion.Euler(0,0,0).
ตำแหน่งการเกิดตัวละครและค่าการหมุนถูกตั้งค่าโดยใช้ ZepetoPlayers.instance.CreatePlayerWithUserId(WorldService.userId, new SpawnInfo(), true); อาร์กิวเมนต์ของฟังก์ชัน SpawnInfo() จะถูกสร้างขึ้น.
ดังนั้นคุณสามารถตั้งค่าค่าที่ต้องการสำหรับ SpawnInfo() ก่อนที่จะเรียกใช้ฟังก์ชันการสร้างตัวละครเพื่อให้แน่ใจว่ามันจะเกิดขึ้นที่ตำแหน่งเฉพาะ.
เราได้วางวัตถุ 3D > ลูกบาศก์ที่ตำแหน่ง (0,0,0) บนแผนที่.
หากคุณเปลี่ยนค่าตำแหน่งการเกิดสำหรับตัวละครเป็นค่าต่อไปนี้ มันจะเกิดขึ้นบนลูกบาศก์.
ใช้ปุ่มเล่นที่กลางหน้าจอเพื่อตรวจสอบการสร้างตัวละคร.
หากคุณเปลี่ยนค่าตำแหน่งและการหมุน คุณยังสามารถสร้างตัวละครที่นอนอยู่แบบนี้ได้.