あなたの世界を作りなさい
プレイヤーとキャラクター: 上級
テレポート実装
9 分
zepetoキャラクターが2つの異なるポイントにテレポートできるポータルを実装します。 ステップ1:テレポートのターゲットポイントを設定する シーンにzepetoキャラクター作成コードをデフォルトとして実装します。 📘 以下のガイドを参照してください。 \[ zepetoキャラクターを作成する docid\ x3hpjvyg3lww0pu1r8k1s ] 1\) テレポートするポイントを作成します。 このガイドでは、これらをaポイントとbポイントと呼びます。 階層を作成 > 3dオブジェクト > プレーンを作成し、plane aに名前を変更します。 2\) テレポートを開始するポータルオブジェクトを追加します。 オブジェクトと相互作用するためにコライダーを追加してください。 衝突を検出するためのエリアのサイズを調整します。 is triggerを確認してください。 3\) 同様の方法で合計2つのテレポートポイントを作成します。 ポイントが重ならないように位置を調整します。 ステップ 2 スクリプトを書く 1\) プロジェクトを作成 > 作成 > zepeto > typescript として名前を teleport に変更します。 2\) 以下のようなサンプルスクリプトを書きます。 スクリプトがアタッチされているオブジェクトのコライダーエリア内でzepetoキャラクターとの衝突が検出されたときに、destinationobjectとともにテレポートするロジック。 import { collider, vector3, quaternion, gameobject } from 'unityengine'; import { spawninfo, zepetocharacter, zepetoplayer, zepetoplayers } from 'zepeto character controller'; import { zepetoscriptbehaviour } from 'zepeto script'; export default class teleport extends zepetoscriptbehaviour { // テレポート先のオブジェクト public destinationobject gameobject; private localcharacter zepetocharacter; start() { // ローカルプレイヤーを見つけて localcharacter に設定します zepetoplayers instance onaddedlocalplayer addlistener(() => { this localcharacter = zepetoplayers instance localplayer zepetoplayer character; }); } ontriggerenter(collider collider) { // localcharacter がまだ設定されていない場合、または衝突した gameobject が localcharacter でない場合は関数を実行しない if (this localcharacter == null || collider gameobject != this localcharacter gameobject) { return; } // localcharacter を destinationobject の位置にテレポートします this localcharacter teleport(this destinationobject transform position, quaternion identity); } } 3\) スクリプトの記述が完了したら、テレポートを開始するポータルオブジェクトにスクリプトを追加します。 4\) インスペクターで、destination object を割り当てます。 destination object テレポートの終点に到着するポータルオブジェクト。 ステップ 3 実行 ポータルの近くにいるときに、zepetoキャラクターをポイントaからポイントbにテレポートします。 このガイドは、私が操作するローカルプレイヤーのテレポートのみを扱います。 マルチプレイヤーの世界の場合、他のプレイヤーの位置の同期が追加で必要です。 マルチプレイヤーサンプルの同期コンポーネントを使用すると、位置の同期が簡単に実装できます。 📘 マルチプレイサンプル zepetoマルチプレイコンポーネント https //github com/naverz/zepeto multiplay example/tree/main/assets/zepeto multiplay component https //github com/naverz/zepeto multiplay example/tree/main/assets/zepeto%20multiplay%20component