Skip to content

Compile errors and AssetDatabase restrictions in Unity 6000.5.x #2813

Description

@CID4536

環境 (Environment)
Unity: 6000.5.2f1
UniVRM: v0.131.1

概要 (Summary)
Unity 6000.5.x系へアップデートしたところ、破壊的変更により複数のコンパイルエラーおよび実行時インポートエラーが発生しました。
手元で該当箇所を修正し、正常に動作することを確認しましたので、今後のアップデートの参考として共有いたします。

  1. UPMのサンプルフォルダ検証による無限ループ
    症状: com.vrmc.gltf や com.vrmc.vrm などのパッケージにおいて、package.json 内に samples の記述が存在しますが、実体の Samples~ フォルダがないため、パッケージマネージャーがエラーを出力し続け無限ループに陥ります。
    対応: package.json から "samples": [...] のブロックを削除することで回避しました。

  2. TreeView 関連の obsolete エラー (CS0619)
    症状: Unity 6000.5.x から TreeView 等でジェネリック型指定が必須になりました。
    対応: 以下のように <int> を指定するように修正しました。
    対象ファイル: MuscleInspectorEditor.cs, SpringBoneTreeView.cs
    TreeView -> TreeView<int>
    TreeViewItem -> TreeViewItem<int>
    TreeViewState -> TreeViewState<int>

  3. GetInstanceID() の obsolete エラーと EntityId の型エラー
    症状: GetInstanceID() が非推奨となり GetEntityId() への移行が促されますが、戻り値の EntityId が int や ulong に暗黙のキャストができなくなりました。
    対応:
    MorphTargetIdentifier.cs: IDでの保持をやめ、TargetRenderer(SkinnedMeshRenderer)自体の参照をそのまま比較・保持するように修正。
    VRM10SpringBoneCollider.cs: SelectedGuid の型を ulong から UnityEngine.EntityId に変更。
    SpringBoneTreeView.cs: 描画用のControl ID(int)が必要な箇所では、joint.GetEntityId().GetHashCode() でハッシュ値を取得して使用。
    SelectedGUIBase.cs (SelectedColliderGroupGUI): element.objectReferenceValue.GetEntityId() を取得し比較するように修正。

  4. AssetDatabase.ImportAsset の実行時制限
    症状: VRMインポート時のテクスチャ最適化処理にて UnityException: Calls to "AssetDatabase.ImportAsset" are restricted during asset importing. が発生し、インポートが中断されます。
    対応:
    対象ファイル: TextureImporterConfigurator.cs (84行目付近)
    importer.SaveAndReimport(); を UnityEditor.EditorApplication.delayCall で遅延実行させることで回避しました。

C#
UnityEditor.EditorApplication.delayCall += () =>
{
importer.SaveAndReimport();
};
ご対応のほど、よろしくお願いいたします。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Packagingunitypackage, download, import, UPMUnityVersionbugSomething isn't working

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions