Unity ECS の Android ビルドでエラー

始めに

前記事Unity ECS で、Prefab を使用した場合に Android ビルドでエラー以外のビルドエラー解消方法について書く。

対処方法

次のようなエラーが出た場合を例に、問題個所を探す方法を書く。

Building Library\Bee\artifacts\Android\d8kzr\a36g5xb4s3en.o failed with output:
C:\MyProject\Library\Bee\artifacts\Android\il2cppOutput\cpp\Assembly-CSharp.cpp(11680,147): error: no member named '_____Unity_Transforms_Parent_RO_ComponentTypeHandle' in 'InternalCompiler_tAD1212FBD6EC9B7A9BD225C9AD3F1591C4741F98'
                ComponentTypeHandle_1_t81CA9224B4C37FC5E6A7C357B5072AFB242809A3* L_1 = (ComponentTypeHandle_1_t81CA9224B4C37FC5E6A7C357B5072AFB242809A3*)(&L_0->_____Unity_Transforms_Parent_RO_ComponentTypeHandle);
  1. エラーにあるファイルを Visual Studio などで開く。前述のエラーだと以下になる。
    • C:\MyProject\Library\Bee\artifacts\Android\il2cppOutput\cpp\Assembly-CSharp.cpp
  2. エラー行に移動。同じく11680行
  3. エラーが出ている型名で検索する。同じく ComponentTypeHandle_1_t81CA9224B4C37FC5E6A7C357B5072AFB242809A3
  4. 複数箇所あるので検索を続けると自分のクラス名にたどり着く事がある。そのクラスを見直す。

実際の修正は実装方法によると思われる。例として自分が行った修正を挙げる。

最後に

Android で ECS を使う事に不安になってきていたが、もう少し頑張れそうだ。

top