ATIV_DETECTED
UniVRMのインストールをスクリプトから検出する仕組みを提供します。
asmdefのversionDefinesを利用する場合はUniVRMをUPMでインストールしてい る場合のみ検出可能です。
ATIV_DETECTED_VRM0 および ATIV_DETECTED_VRM1 はそれに加えて、UniVRMをunitypackageでインストールしている場合も検出可能です。
前提条件
UniVRMのバージョンは判定できません。
UniVRMのバージョンを判定したい場合は、asmdefのversionDefines、またはC#リフレクションを用いて判定してください。
役に立つ状況
UniVRMのasmdefを参照したり、UniVRMの存在によって挙動が変化するエディタ拡張ツールを作る場合に便利です。
使い方
UniVRMのVRM0.xがインストールされている場合、Unityのプロジェクト全体で ATIV_DETECTED_VRM0 が定義されます。
UniVRMのVRM1.0がインストールされている場合、Unityのプロジェクト全体で ATIV_DETECTED_VRM1 が定義されます。
詳細
プロジェクト内にUniVRMのスクリプトが含まれているかどうかを検出します。 このため、以下の
- unitypackageで
Assets以下にインストールされたUniVRM - unitypackageで
Packages以下にインストールされたUniVRM - UPMで
Packages以下にインストールされたUniVRM - UPMで
Packages以下に他のライブラリの一部としてインストールされたUniVRM
Warudo のSDKは内部にUniVRM 0.129.1を含みます。
これは最後のケースに該当し、 ATIV_DETECTED によって検出可能です。
Cluster Creator Kit のSDKは内部に古いUniVRMのMToonのみを含みます。
これはUniVRMとして扱われません。
凝った使い方
単独ではUPMでインストールされたUniVRMを検出し、Avatar Tinker Vistaが入っている場合はunitypackageでインストールされたUniVRMを追加で検出する場合は、以下のいずれかの方法が使えます。
- asmdefの
versionDefinesを普通に定義する。 asmdefのdefineConstraintsや条件コンパイルでは、|| ATIV_DETECTED_VRM0で、versionDefinesで定義されたシンボルとATIV_DETECTED_VRM0の両方を参照する。 - または、asmdefの
versionDefinesで定義されるシンボルをATIV_DETECTED_VRM0またはATIV_DETECTED_VRM1にする。