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

パフォーマンスのヒント

このページでは、UdonSharpスクリプトのパフォーマンスを向上させるためのヒントをいくつか紹介します。

UdonSharpはC#よりも低速です

実行内容にもよりますが、Udonでコードを実行すると、通常のC#で同等の処理を行う場合に比べて約200倍から1000倍の時間がかかることがあります。

private メソッドの使用

他のスクリプトから呼び出されないメソッドには private を指定してください。Udonが呼び出し対象のメソッドを検索する仕組み上、公開されているメソッド(public method)は少ないほど、カスタムイベントのパフォーマンスが向上します。

異なるBehaviour間での呼び出しは、ローカルなメソッド呼び出しよりも低速です。可能な限り、関連する処理は複数のUdonSharpBehaviourに分けるのではなく、1つのUdonSharpBehaviourにまとめるようにしてください。

CustomNetworkEvent を送信するには、対象のメソッドが public でなければならない点に注意してください。非公開メソッドの場合、イベントは発生しません。また、_MyLocalMethod のようにアンダースコアで始まるメソッドは、ネットワークイベントを受け取ることができません。

GetComponent<T> を頻繁に使用しない

GetComponent<T> は、Start() イベントや、頻繁に発生しないイベント内でのみ使用してください。

GetComponent<T>() は処理が遅く、特にUdonで UdonSharpBehaviour 型を取得する際には顕著です。これは、UdonSharp がすべての UdonBehaviour をチェックして正しい UdonSharpBehaviour 型であることを確認するループを挿入する必要があるためです。

最終更新: