String Loading
String Loadingを使うと、インターネット上のテキストファイルをダウンロードしてVRChatワールド内で利用できます。SDKに含まれるDownloadStringスクリプトを使用するか、新しいVRCStringDownloader.LoadUrl関数を使って独自のスクリプトを作成することができます。
- テキストファイルは、
.txtや.jsonなど、どのような形式でも構いません。
- 5秒ごとに1つの文字列をダウンロードできます。 この制限を超えた場合、文字列のダウンロードはキューに入れられ、ランダムな順序でダウンロードされます。
- 1つの文字列は最大100MBまでです
- キューに入れられる要素は最大1000個までです
Trusted URLs
サイトがリストに含まれていない場合、ユーザー設定で「Allow Untrusted URLs(信頼できないURLを許可)」が有効になっていない限り、ダウンロードは行われません。
以下のURLが利用可能です:
- Disbridge (
*.disbridge.com) - GitHub (
*.github.io) - Github Gist (
gist.githubusercontent.com) - Pastebin (
pastebin.com) - VRCDN (
*.vrcdn.cloud)
Guides
ワールドでString Loadingを使用するには複数の方法があります。
DownloadStringDownloadString スクリプトを使用して文字列をダウンロードする
SDKには、簡単に文字列をダウンロードするためのスクリプトが含まれています:
- シーンに新しいGameObjectを作成します。
UdonBehaviourコンポーネントを追加します。DownloadStringをプログラムソースとして選択します。- URLを入力し、ダウンロードしたテキストを表示したいテキストコンポーネントを選択します。
LoadUrl用に独自のスクリプトを作成する
関数 VRCStringDownloader.LoadUrl を使用して、以下の手順で独自のスクリプト内に文字列をダウンロードすることができます:
- URLとUdonBehaviourを指定して
VRCStringDownloader.LoadUrlを実行します。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では、以下を使用できます:
(IUdonEventReceiver)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;
using VRC.Udon.Common.Interfaces;
public class ResultBytesExample : UdonSharpBehaviour
{
[SerializeField]
private VRCUrl url;
void Start()
{
VRCStringDownloader.LoadUrl(url, (IUdonEventReceiver)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}");
}
}
最終更新: