移行
UdonSharp 0.x(.unitypackage版)は非推奨となり、サポートを終了しました。
新しいバージョンのUdonSharpはVRChat Worlds SDKに含まれており、Creator Companionから簡単にインストールできます。Creator Companionを使用してプロジェクトを移行することを強く推奨します。手動で移行を行う場合は、手動移行をお読みください。
UdonSharp 1.0の新機能
- UdonSharpプログラムで利用可能な More C# features:
staticメソッド- ジェネリックな
staticメソッド params、out、ref、およびデフォルト引数- 拡張メソッド
- 継承、仮想メソッド、および抽象クラス
- 部分クラス(Partial classes)
Enums
- Unityインスペクターで複数のUdonSharpスクリプトをMulti-edit(一括編集)可能に
- Prefab variants、instances、nestingを完全サポート
- Editor scriptingを刷新し、簡略化
and- さまざまなバグ、エッジケース、その他の不具合を修正
既知の問題
非常に古いバージョンのUdonSharpからプロジェクトを移行する際、いくつかの既知の問題が発生する可能性があります。その対処法を以下に示します。
UdonSharpで問題が発生した場合は、「Assets」 > 「Reimport All」からすべてのアセットの再インポートをお試しください。
多くの場合、これでUdonSharpに関連するインポートの問題が解決します。特に古いバージョンからプロジェクトを移行、またはアップグレードした際に有効です。
Nested Prefabs
問題: UdonSharpでは以前よりNested Prefabs(入れ子状のプレハブ)の使用に対して警告が表示されていました。古いバージョンから移行する際、Nested Prefabsが壊れる可能性があります。
症状: Unityのコンソールに Cannot upgrade scene behaviour 'SomethingOrOther' since its prefab must be upgraded といったエラーが表示されます。
修正方法: まず、0.xのUdonSharpプロジェクトでプレハブをアンパック(展開)してください。また、「Udon Sharp」メニューから「Force Upgrade」を選択することでも可能です。
U#アセンブリに属していない
問題: 独自のAssembly Definitionを持つライブラリには、U#アセンブリ定義も必要です。
症状: 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#プロキシが保持し、対応するUdonBehaviourは実行時まで空となります。
- StationおよびPlayerの参加イベントにおける廃止されたオーバーロードは使用できません。
手動での移行
Creator Companionを使用せずに、バージョン1.0未満のUdonSharpを使用しているプロジェクトをアップグレードするには、以下の手順に従ってください:
- プロジェクトをバックアップしてください。
- プロジェクトの「Assets」フォルダーから、VRCSDKフォルダー、Udonフォルダー、UdonSharpフォルダー、およびGizmos/UdonSharpフォルダーを削除してください。
- World SDKのUnity Package版をダウンロードしてインストールしてください。
- UdonSharp SDKのUnity Package版をダウンロードしてインストールしてください。
最終更新: