TUTORIALS
Make an item eating World
7min
sample project 📘 project files used in lecture https //github com/naverz/zepeto world sample/tree/main/assets/chapter2 https //github com/naverz/zepeto world sample/tree/main/assets/chapter2 summary summary based on what we learned in chapter 1, we will make an item eating world using character movement speed and jump control difficulty beginner time required 30 minutes project goals handling of item acquisition using ontrigger event understand how to apply text ui create ui controller to reflect item acquisition in text ui understand how to control the height of the zepeto character's jump understand how to control the movement speed of zepeto characters 🎬 video of completed world https //www youtube com/watch?v=goeopqfcbbs https //www youtube com/watch?v=goeopqfcbbs scripts 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 character object zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; //add jumppower this zepetocharacter additionaljumppower = this jumppower; } ontriggerexit(collider collider) { //turn the jump power back to normal 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 character object 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() { //wait for waittime value yield new waitforseconds(this waittime); //turn the run speed back to normal 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() { //init value this message = "items"; this count = 0; } public increasecount() { this count++; if(this count >= this maxcount) { this resultui text = "clear!"; } else { this stringproperty = `${this message} ${this count}`; this resultui text = this stringproperty; } } }