移行
UdonSharp 0.x(.unitypackage版)は非推奨となり、サポートも終了しています。
新しいバージョンのUdonSharpはVRChat Worlds SDKに含まれており、Creator Companionを通じて簡単にインストールできます。Creator Companionを使用したプロジェクトの移行を行うことを強く推奨します。手動で移行を行う場合は、手動移行をお読みください。
UdonSharp 1.0 の新機能
- UdonSharp プログラムで利用可能なC#機能の拡充:
staticメソッド- ジェネリック
staticメソッド params、out、ref、およびデフォルト引数- 拡張メソッド
- 継承、仮想メソッド、抽象クラス
- 部分クラス(partialクラス)
- 列挙型(Enums)
- Unity インスペクターでの複数の UdonSharp スクリプトのマルチ編集
- プレハブバリアント、インスタンス、および入れ子(ネスト)の完全サポート
- エディタースクリプトの刷新と簡素化
- コンパイラの修正および最適化
- 各種バグ、エッジケース、その他の細かな不具合の修正
既知の問題
非常に古いバージョンのUdonSharpからプロジェクトを移行する際、いくつかの既知の問題が発生する可能性があります。ここではその対処方法を説明します。
UdonSharpで問題が発生していますか?まずは「Assets」>「Reimport All」を使用して、すべてのアセットの再インポートを試してください。
多くの場合、特に古いバージョンからプロジェクトを移行・アップグレードする際に発生するUdonSharp関連のインポートの問題は、これで解決します。
ネストされたプレハブ
問題: UdonSharpでは、以前からネストされたプレハブの使用に対して警告を出していました。古いバージョンから移行する際、ネストされたプレハブが壊れることがあります。
症状: Unityのコンソールに Cannot upgrade scene behaviour 'SomethingOrOther' since its prefab must be upgraded のようなエラーが表示されます。
修正方法: 0.x系UdonSharpプロジェクトの段階で、あらかじめプレハブをアンパック(展開)しておいてください。「Udon Sharp」メニューから「Force Upgrade」を選択することでも解決できる場合があります。
U# Assemblyに属していない
問題: 独自のAssembly Definitionを持つライブラリには、U#のAssembly Definitionも必要となります。
症状: Unityのコンソールに [UdonSharp] Script 'Assets/MyScript.cs' does not belong to a U# assembly, have you made a U# assembly definition for the assembly the script is a part of? のようなエラーが表示されます。
修正方法:
- Projectウィンドウを使用して、問題のスクリプトと同じディレクトリ、またはその親ディレクトリにある
.asmdefで終わるファイルを探します。 - このAssembly Definitionが存在するフォルダー内で右クリックし、
Create > U# Assembly Definitionを選択します。 - 作成された新しいU# asmdefを選択し、インスペクターを使用して「Source Assembly」に該当するAssembly Definition Fileを設定します。
- 設定後、Unityの再起動が必要になる場合があります。
Newtonsoft.Json.Dll
問題: 一部のパッケージには、VRCSDK自体が使用するJSONライブラリのコピーが含まれています。これにより、ライブラリが重複して存在することになります。
症状: Unityのコンソールに上記ライブラリに関連するエラーが表示されます。文頭とは限りませんが、System.TypeInitializationException: the type initializer for blah blah blah...Assets/SketchfabForUnity/Dependencies/Libraries/Newtonsoft.Json.dll のような内容が含まれます。
修正方法: Assetsフォルダーから Newtonsoft.Json.dll のコピーをすべて削除してください。VRCSDKが必要とするパッケージに対しては、Package Managerを通じて提供されます。
その他の破壊的変更
- U# behaviourの名前は、.csファイルの名前と一致している必要があります。
- 重複したプログラムアセットは、同じ
.csファイルを参照できません。 - プログラムアセットはスクリプトを指している必要があり、空にすることはできません。
- エディタスクリプトの仕様が変更されました。データはUdonSharpBehaviourのC# proxyが保持し、対応するUdonBehaviourは実行時まで空の状態になります。
- ステーションおよびプレイヤー参加イベントの廃止されたオーバーロードは使用できなくなりました。
手動による移行
UdonSharp 1.0未満のバージョンを使用しているプロジェクトを、Creator Companionを使用せずにアップグレードするには、以下の手順に従ってください。
- プロジェクトのバックアップを取ります。
- プロジェクトの「Assets」フォルダから、
VRCSDKフォルダ、Udonフォルダ、UdonSharpフォルダ、およびGizmos/UdonSharpフォルダを削除します。 - World SDKのUnityパッケージ版をダウンロードし、インストールします。
- UdonSharp SDKのUnityパッケージ版をダウンロードし、インストールします。
最終更新: