บทเรียน
สร้างไอเท็มกินโลก
7 นาที
ตัวอย่างโครงการ 📘 ไฟล์โครงการที่ใช้ในบรรยาย https //github com/naverz/zepeto world sample/tree/main/assets/chapter2 สรุป true left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type left unhandled content type เป้าหมายของโครงการ การจัดการการซื้อสินค้าผ่านเหตุการณ์ ontrigger เข้าใจวิธีการใช้ text ui สร้าง ui controller เพื่อสะท้อนการซื้อสินค้าใน text ui เข้าใจวิธีการควบคุมความสูงของการกระโดดของตัวละคร zepeto เข้าใจวิธีการควบคุมความเร็วในการเคลื่อนที่ของตัวละคร zepeto 🎬 วิดีโอของโลกที่เสร็จสมบูรณ์ https //www youtube com/watch?v=goeopqfcbbs สคริปต์ charactercontroller ts import { zepetoscriptbehaviour } from 'zepeto script' import { spawninfo, zepetoplayers, localplayer, zepetocharacter } from 'zepeto character controller' import { worldservice } from 'zepeto world'; export default class charactercontroller extends zepetoscriptbehaviour { start() { //gets the userid (logged in through editor) zepetoplayers instance createplayerwithuserid(worldservice userid,new spawninfo(), true); zepetoplayers instance onaddedlocalplayer addlistener(() => { let player localplayer = zepetoplayers instance localplayer; }); } } getitem ts import { collider, vector3, gameobject, transform } from 'unityengine'; import { zepetocharacter, zepetoplayer, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour, zepetoscriptinstance } from 'zepeto script'; // import custom script from path import uicontroller from ' /uicontroller'; export default class getitem extends zepetoscriptbehaviour { public extcomponentgameobject gameobject; private extcomponent uicontroller; private zepetocharacter zepetocharacter; start() { //zepeto character object zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); //script import this extcomponent = this extcomponentgameobject getcomponent\<uicontroller>(); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; //sends a message of raising a count after eating an item this extcomponent increasecount(); //destroy item gameobject destroy(this gameobject); } } jumppower ts import { collider } from 'unityengine'; import { zepetoplayers, zepetocharacter } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class jumppower extends zepetoscriptbehaviour { public jumppower number = 5; private zepetocharacter \ zepetocharacter; start() { //วัตถุของตัวละคร zepeto zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; //เพิ่มพลังกระโดด this zepetocharacter additionaljumppower = this jumppower; } ontriggerexit(collider collider) { //คืนพลังกระโดดกลับเป็นปกติ this zepetocharacter additionaljumppower = 0; } } speedup ts import { collider, gameobject, waitforseconds } from 'unityengine'; import { zepetocharacter, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class speedup extends zepetoscriptbehaviour { private zepetocharacter \ zepetocharacter; public runspeed number = 4; public waittime number = 3; start() { //วัตถุของตัวละคร zepeto zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; this zepetocharacter additionalrunspeed = this runspeed; this startcoroutine(this doroutine()); } doroutine() { //รอเวลาตามค่าที่กำหนด yield new waitforseconds(this waittime); //คืนความเร็วในการวิ่งกลับเป็นปกติ this zepetocharacter additionalrunspeed = 0; } } uicontroller ts import { zepetoscriptbehaviour } from 'zepeto script'; import { text } from "unityengine ui"; import { gameobject } from 'unityengine'; export default class uicontroller extends zepetoscriptbehaviour { public resultui text; public maxcount number = 7; private stringproperty string; private message string; private count number; start() { //กำหนดค่าเริ่มต้น this message = "รายการ"; this count = 0; } public increasecount() { this count++; if(this count >= this maxcount) { this resultui text = "เคลียร์!"; } else { this stringproperty = `${this message} ${this count}`; this resultui text = this stringproperty; } } }
