チュートリアル
アイテムを食べるワールドを作る
7分
サンプルプロジェクト 📘 講義で使用したプロジェクトファイル https //github com/naverz/zepeto world sample/tree/main/assets/chapter2 https //github com/naverz/zepeto world sample/tree/main/assets/chapter2 概要 概要 第1章で学んだことに基づいて、キャラクターの移動速度とジャンプ制御を使用してアイテムを食べる世界を作ります。 難易度 初心者 必要な時間 30分 プロジェクトの目標 ontriggerイベントを使用したアイテム取得の処理 text uiの適用方法を理解する アイテム取得をtext uiに反映させるuiコントローラーを作成する zepetoキャラクターのジャンプの高さを制御する方法を理解する zepetoキャラクターの移動速度を制御する方法を理解する 🎬 完成したワールドのビデオ https //www youtube com/watch?v=goeopqfcbbs 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() { //ユーザーidを取得(エディタを通じてログイン) 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 uicontroller from ' /uicontroller'; export default class getitem extends zepetoscriptbehaviour { public extcomponentgameobject gameobject; private extcomponent uicontroller; private zepetocharacter zepetocharacter; start() { //zepetoキャラクターオブジェクト zepetoplayers instance onaddedlocalplayer addlistener(() => { this zepetocharacter = zepetoplayers instance localplayer zepetoplayer character; }); //スクリプトインポート this extcomponent = this extcomponentgameobject getcomponent\<uicontroller>(); } ontriggerenter(collider collider) { if (this zepetocharacter == null || collider gameobject != this zepetocharacter gameobject) return; //アイテムを食べた後のカウントを上げるメッセージを送信 this extcomponent increasecount(); //アイテムを破壊 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() { //waittime値を待つ 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; } } }