アイテムのアンロック

PlayerDataを使用してアイテムを永続的にアンロックする方法について、ワールド内の簡単な実績機能を例に解説します。
実際に試してみたい方は、Unlock Items Example World にアクセスしてください!
note
この例における「アイテム」という用語は一般的な意味で使用しており、こちらで説明されているユーザー生成アイテムを指すものではありません。
サンプルの使用方法
- ワールドに入室します
- アクションを実行して実績を解除します - ワールドに滞在する(10秒、2分、5分) - 移動する(10ユニット、100ユニット、300ユニット) - リスポーンする - シークレットを見つける - 上記のすべてを実行する
- 解除された実績を表示するUIを確認します
- ワールドから退出して再度入室します。実績と統計(ワールド滞在時間、移動距離)が保持されているはずです
サンプルのインポート
以下の手順に従って、このサンプルを Unity プロジェクトに追加します。
- Unity エディターのメニューの「VRChat SDK > 🏠 Example Central」から Example Central ウィンドウ を開きます。
- リストの中からこのプレハブを探すか、タイトル(このページのタイトルと同じ)で検索します。
- 「Import」ボタンを押して、Unitypackage をプロジェクトにインポートします。
技術的詳細
メインの UnlockItems スクリプトは、OnPlayerRestored メソッド内でプレイヤーのデータが最初に読み込まれた際に実績を確認し、アンロック済みのすべてのアイテムを復元します。
次に、UpdateStats メソッドを呼び出し、以下のメソッドを実行します。
- CheckTimeInWorld();
- CheckDistanceMoved();
- CheckHasPlayerRespawned();
- CheckHasFoundSecret();
- CheckAllAchievementsUnlocked();
すべてのメソッドが実行され実績が更新された後、このメソッドは UPDATE_STATS_TIME の待機時間を経て、自身を再度呼び出します。
UpdateStats のチェック中に実績がアンロックされるたびに UnlockAchievement メソッドが呼び出され、対象となる実績のスプライト、色、テキストが更新されます。
最終更新: