うにのトゲは刺さると痛い(´・ω・`)-35

Androidアプリの64ビット化強制のメールからごっぐるから届いて、その辺の絡みでseekhackしたというお話。64ビット化強制のメール自体は5月かそこらで既に届いていたのをよく見てなかったw


Unity 64bit

多分、ぐぐればQiita辺りのエントリがすぐにヒットするはず……だが何故か俺氏のテンポラリブックマークにはstackoverflowとかのurlしか残ってなかった……(´・ω・`)エイゴヨメナイノニ

何はともあれ、最終的に

  1. メニューバーから[ビルド設定]->[プレイヤー設定]の順に開く。
  2. [その他の設定]-[設定]の「スクリプティングバックエンド」を"IL2CPP"にする。
  3. 「ターゲットアーキテクチャ」で"ARM64"にチェックを入れる。
  4. "android-ndk-r16b-windows-x86_64.zip"をダウンロードして解凍する。
  5. メニューから[編集]-[環境設定]の順に選択する。
  6. [外部ツール]のNDKに先に解凍したフォルダを指定する。

みたいな感じで行けたんだったかな?
ちなみにUnityのバージョンは"2018 4.4f1"。
2019でも問題ないんだろうけれども、色々と試行錯誤した結果、最新版はやめておこうという気になった(ノ∀`)

参考:
Unity Export Android 64-bit
Googleplay 64bit console warning


Unity+sqlite+64bit

上記の方法でようやく64bitでコンパイル出来るようになったのだが、実機上でゲームをしようとすると上手く動かない。正確に言うとカードがディールされない(´・ω・`)

色々と悩んだ結果、そう言えば、前にdb絡みで同じような現象になったなということを思い出し、SQLiteUnityKitでぐぐる。

どんぴしゃりなエントリが(・∀・)
UnityでSQLiteをAndroid(64bit対応)向けに導入する

  1. 拾って来たsqlite-android-3290000.aarを"Assets/Plugins"の下に入れた。("Assets"以下なら何処でもいいのかな?)
  2. SqliteDatabase.csのDllImportの部分を全部変更した。14箇所だったかな?
    [DllImport("sqlite3", EntryPoint = "sqlite3_step")]
    //        ↓
    [DllImport("libsqliteX", EntryPoint = "sqlite3_step")]
    

ちなみにこの方法で実機上でゲームがまともに動くようになったが、editor上では当然の如く、エラーになった(ノ∀`)

"sqlite3.dll"と"sqlite3.def"をそれぞれ"libsqliteX.dll"と"libsqliteX.def"にしたら、動いた(・∀・)

これが正しい解決策かはわからないがw


取り敢えず、これで一応64ビット化は出来ているようなんだけれども、まあしばらくはアップロードしなくてもいいか。どうせ誰もダウンロードしないし( ゜σ・゚)ホジホジ