文字列の読み込み (String Loading)
文字列の読み込み機能を使用すると、インターネット上のテキストファイルをダウンロードして、VRChatワールド内で利用できるようになります。SDKに含まれる DownloadString スクリプトを使用するか、新しい VRCStringDownloader.LoadUrl 関数を使用して独自のスクリプトを作成することができます。
- テキストファイルは、
.txtや.jsonなど、どのような形式でも構いません。 - 5秒ごとに1つの文字列をダウンロードできます。
この制限を超えた場合、文字列のダウンロードはキューに入れられ、ランダムな順序でダウンロードされます。
- 1つの文字列の最大サイズは100MBまでです。
- キューに入れられる要素数は最大1000個までです。
信頼できるURL
サイトがリストに記載されていない場合、ユーザー設定で「Allow Untrusted URLs」を有効にしない限り、ダウンロードは実行されません。
以下のURLが利用可能です:
- Disbridge (
*.disbridge.com) - GitHub (
*.github.io) - Github Gist (
gist.githubusercontent.com) - Pastebin (
pastebin.com) - VRCDN (
*.vrcdn.cloud)
ガイド
ワールドで文字列読み込みを使用する方法はいくつかあります。
DownloadString スクリプトを使用して文字列をダウンロードする
SDKには、文字列を簡単にダウンロードするためのスクリプトが含まれています。
- シーン内に新しい GameObject を作成します。
UdonBehaviourコンポーネントを追加します。- プログラムソースとして
DownloadStringを選択します。 - URLを入力し、ダウンロードしたテキストを表示したいテキストコンポーネントを選択します。
LoadUrl 用に独自のスクリプトを作成する
独自スクリプトで文字列をダウンロードするには、以下の手順で VRCStringDownloader.LoadUrl 関数を使用します。
- URLを指定して
VRCStringDownloader.LoadUrlを実行し、UdonBehaviour を指定します。VRCStringDownloaderはVRC.SDK3.StringLoading名前空間内にあります。
- 指定した UdonBehaviour で
OnStringLoadSuccessまたはOnStringLoadErrorイベントが呼び出されるまで待機します。 - イベントの
IVRCStringDownloadを使用して、文字列ダウンロードのResultを取得します。
新しいイベント
OnStringLoadSuccess
IVRCStringDownload を返します。関数 LoadUrl がインターネットから文字列のダウンロードに成功したときに呼び出されます。
OnStringLoadError
IVRCStringDownload を返します。関数 LoadUrl による文字列のダウンロードが失敗したときに呼び出されます。
新しい型
VRCStringDownloader
Webから文字列をダウンロードするための静的クラスです。
VRCStringDownloader.LoadUrl
- Url: インターネットから読み込むURLです。
- UdonBehaviour: イベントの送信先となるUdonBehaviourです。
- Udon Graphでは、これがデフォルトで現在のUdonBehaviourに設定されます。
- Udon Sharpでは、
thisを使用できます。
IVRCStringDownload
文字列読み込みイベントの結果です。
- Get Error (
string):OnStringLoadErrorに対するエラーメッセージです。 - Get ErrorCode (
int):OnStringLoadErrorに対するHTTPエラーコードです。 - Get ResultBytes (
byte[]): ダウンロードされた生のデータがバイト配列として格納されています。カスタム形式で文字列をデコードするには、これに対してSystem.Text.Encodingを使用できます。このプロパティにアクセスすると、データのコピーが返されます。 - Get Result (
string): UTF8標準でデコードされた、ダウンロード済みの文字列です。 - Get UdonBehaviour (
UdonBehaviour): イベントの送信先であるUdonBehaviourです。 - Get Url (
VRCUrl): ダウンロードを試みたURLを取得します。
サンプルコード
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}");
}
}
最終更新: