VRChat 非公式日本語ドキュメント

アイテムのアンロック

アイテムアンロックワールドのプレビュー

PlayerDataを使用してアイテムを永続的にアンロックする方法を、ワールド内の簡単な実績を例に解説します。

Unlock Items Example Worldにアクセスして、実際に試してみてください!

注意

この例で使われている「アイテム」という用語は一般的な意味で使用されており、ここで説明されているユーザーが生成するアイテムを指すものではありません。

サンプルの使用方法

  1. ワールドに入る
  2. 以下の行動をとって実績をアンロックします
    • ワールド内で時間を過ごす(10秒、2分、5分)
    • 移動する(10ユニット、100ユニット、300ユニット)
    • Respawn
    • 隠し要素を見つける
    • 上記すべて
  3. アンロックした実績が表示されるUIを確認する
  4. 一度ワールドを離れてから戻ると、実績と統計(ワールドでの滞在時間、移動距離)が保持されているはずです

サンプルのインポート

以下の手順に従って、このサンプルをUnityプロジェクトに追加してください。

  1. Unityエディターのメニューから「VRChat SDK > 🏠 Example Central」を選択し、Example Centralウィンドウを開きます。
  2. リスト内からこのプレハブを探すか、タイトル(このページと同じタイトル)で検索してください。
  3. 「Import」ボタンを押して、Unitypackageをプロジェクトにインポートします。

技術的な詳細

メインの UnlockItems スクリプトは、OnPlayerRestored メソッドでローカルプレイヤーのデータが初めて読み込まれた際に実績の確認を行い、発見されたロック解除済みのアイテムをすべて復元します。

その後、UpdateStats メソッドを呼び出し、以下のメソッドを実行します。

  • CheckTimeInWorld();
  • CheckDistanceMoved();
  • CheckHasPlayerRespawned();
  • CheckHasFoundSecret();
  • CheckAllAchievementsUnlocked();

すべてのメソッドの実行と実績の更新が終わると、このメソッドは UPDATE_STATS_TIME で指定された遅延の後に再度実行されるよう自分自身を呼び出します。

UpdateStatsのチェック中に実績が解除されるたびにUnlockAchievementメソッドが呼び出され、対象となる実績のスプライト、色、およびテキストが更新されます。

最終更新: