2020年7月20日月曜日

以前のバージョンのUnity & PlayMaker で作成したプロジェクトを読み込む

大変だったいうお話。
こういうケースは、ままありますね。

「GooglePlayのアプリを64bitに対応させなければ、8月1日以降非公開になる」

なんていうのは、いい例なのかな。Unity 5 で作ったプロジェクトを64bit対応させる
ためには最近のUnityで開いて、ビルドし直さなければならない…
とりあえずやってみよう。ということで、直接 Unity 2019 で開いてみるも、動かない。
コンパイルエラー。バグメッセージは多すぎて読む気にもならない。

Unity だけでもバージョン間の差異があり、更にPlayMakerなどのアセットは、その
バージョンのUnity 用に調整された当時のバージョンだったりする。
新たに現バージョンのPlayMakerを上書きしてみても、動作せず。
複雑さが、ましましです。

以下、他のブログに書いたメモと言うか、愚痴の補足転載でアレなんですが。
 -------------------------------------

GooglePlayのアプリ。64bitに対応させなきゃ8月1日以降非公開にされてしまう件。

で、一つだけは対応させて残そうとしてるのだけれど、大変。
Unity5.7でのプロジェクトを、Unity2019で開いてビルドしなければならない。
(実際は2017.4以降で出来るよう)

比較的単純な仕組みなので、バージョンの影響は受けないだろうと思いきや、
ビジュアルスクリプトPlayMakerのバージョンが合わない。
Unity5時代に対応していたバージョンのPlayMakerが最近のunityでは上手く動かない。

仕方ないので、現バージョンのPlayMakerや関連アセットがインストールされた
「Unity2019プロジェクト」を新たに作り、シーンファイル、絵や音、プレハブなどが入った
関連フォルダを持ち込む。

とりあえず動きそう。
しかし、PlayMakerのグローバル変数は手書きで移植
(ファイル移設出来るはずなのだが、何故か無理)

オブジェクトに設定するTagも不完全でやはり手動移植。

おまけに、iTweenを使っていたため実行エラーが出て止まる…
これは現在のPlayMakerがiTweenをサポートせず、該当アクションとiTweenアセット
自体が存在しないため。
レガシー扱いのITweenアクションとiTweenアセットをインポートしてもどうも上手く動かない。
やはりiTweenは過去のものか。

DOTweenの類似アクションに差し替えて、さて上手く動くか。
ほんとこれ一つだけにしておこう…

 -------------------------------------
実際これで動き、ビルドして、GooglePlayに更新アップロードできたのですが、
何度もやりたいことではないですね()

FSM(状態遷移)は並べられたアクションを名前だけで認識、実行するので
アクションの中身(C#スクリプト)が現在のUnity環境に応じたものになっていれば
そのまま動くだろう。と思い、まあ、そうなのですが、アクション自体が消滅していたり
アクションの挙動が微妙に変わっていたりなどは、どうしようもないです。

ふわっとした感想を言えば、間に入るものが多いほど、それぞれの変化の影響で
複雑さがまし、全体像は見えなくなり、いざ、というとき大変だ…ということですね。

ビジュアルスクリプトはじめ、システムに深く関わるアセットを使用する際のある意味
デメリットかなぁ。このブログであまり書きたくないけれど()

(追記)
愚痴っぽく書いてしまったものの実際は、PlayMakerのアクションを通してUnityに
アクセスしている構造のプロジェクトだから、いくつか問題はあっても 離れたバージョン
のUnity へ(わかりやすい手間だけで)移設できてるんですよね。
システムの差異を吸収してくれているPlayMakerが凄いということです。

Unityのバージョンアップに逐一対応してくれるところが、開発元の信頼されている
理由だと思います。

0 件のコメント:

コメントを投稿