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

文字列の読み込み (String Loading)

文字列の読み込み機能を使用すると、インターネット上のテキストファイルをダウンロードして、VRChatワールド内で利用できるようになります。SDKに含まれる DownloadString スクリプトを使用するか、新しい VRCStringDownloader.LoadUrl 関数を使用して独自のスクリプトを作成することができます。

この制限を超えた場合、文字列のダウンロードはキューに入れられ、ランダムな順序でダウンロードされます。

信頼できるURL

サイトがリストに記載されていない場合、ユーザー設定で「Allow Untrusted URLs」を有効にしない限り、ダウンロードは実行されません。

以下のURLが利用可能です:

ガイド

ワールドで文字列読み込みを使用する方法はいくつかあります。

DownloadString スクリプトを使用して文字列をダウンロードする

SDKには、文字列を簡単にダウンロードするためのスクリプトが含まれています。

  1. シーン内に新しい GameObject を作成します。
  2. UdonBehaviour コンポーネントを追加します。
  3. プログラムソースとして DownloadString を選択します。
  4. URLを入力し、ダウンロードしたテキストを表示したいテキストコンポーネントを選択します。

LoadUrl 用に独自のスクリプトを作成する

独自スクリプトで文字列をダウンロードするには、以下の手順で VRCStringDownloader.LoadUrl 関数を使用します。

  1. URLを指定して VRCStringDownloader.LoadUrl を実行し、UdonBehaviour を指定します。
    • VRCStringDownloaderVRC.SDK3.StringLoading 名前空間内にあります。
  2. 指定した UdonBehaviour で OnStringLoadSuccess または OnStringLoadError イベントが呼び出されるまで待機します。
  3. イベントの IVRCStringDownload を使用して、文字列ダウンロードの Result を取得します。

新しいイベント

OnStringLoadSuccess

IVRCStringDownload を返します。関数 LoadUrl がインターネットから文字列のダウンロードに成功したときに呼び出されます。

OnStringLoadError

IVRCStringDownload を返します。関数 LoadUrl による文字列のダウンロードが失敗したときに呼び出されます。

新しい型

VRCStringDownloader

Webから文字列をダウンロードするための静的クラスです。

VRCStringDownloader.LoadUrl

IVRCStringDownload

文字列読み込みイベントの結果です。

サンプルコード

using System.Text;
using UdonSharp;
using UnityEngine;
using VRC.SDK3.StringLoading;
using VRC.SDKBase;

public class ResultBytesExample : UdonSharpBehaviour
{
    [SerializeField]
    private VRCUrl url;

    void Start()
    {
        VRCStringDownloader.LoadUrl(url, this);
    }

    public override void OnStringLoadSuccess(IVRCStringDownload result)
    {
        string resultAsUTF8 = result.Result;
        byte[] resultAsBytes = result.ResultBytes;
        string resultAsASCII = Encoding.ASCII.GetString(resultAsBytes);
        Debug.Log($"UTF8: {resultAsUTF8}");
        Debug.Log($"ASCII: {resultAsASCII}");
    }

    public override void OnStringLoadError(IVRCStringDownload result)
    {
        Debug.LogError($"Error loading string: {result.ErrorCode} - {result.Error}");
    }
}

最終更新: