Unityを使って子供と一緒に「妖怪が出てくるホラーゲームを作ろう」と試みたハナシ。
昨日からいろいろ試行錯誤をしているところですが、いちどドツボにハマって、抜け出したことがあるので、自分用のメモとしても、誰かの役に立つかもしれないメモとしても、ここに記載しておきます(※2022年8月13日現在の情報です、あしからず!)
事象:UnityにAsset StoreからStandardAssetsをインポートしても、そのままでは動かない?!
正確には、以下のような真っ赤なエラーメッセージが出てしまい、テストプレイをしようとしても「さきにエラーメッセージを解消しろよコラァ」みたいに警告されて、エンジンが動いてくれない。
どうやら、StandardAssetsの中に、コード的に非推奨な書き方をしている行があるので、そこを推奨のコードに書き直せと言っている。
非推奨の書き方も何も、公式ストアからインストールしたものなのですが・・・などと言っていたら洋物のゲームエンジンで開発はできないw。こういうときは、「そうですか。何があったのかは知りませんが、とにかく、ダウンロードしたものの中におかしい部分があるんでしょう。調べて自分で書き直しますね」とスナオに反応しましょう。外資に勤めていた頃の私も本社から落ちてきたコードにはそんな反応で粛々と対応していたなぁ・・・。
該当箇所を発見。
SimpleActivatorMenu.cs というファイルがおかしいらしい。これをソースエディタで開いてみる。
いろいろ調べたところ、この"GUIText camSwitchButton"というのが、今どきのUnity君にはよろしうない扱いらしい。
GUITextではなくて、UnityEngine.UIのTextを使って書け、ということになる。
ということは、
1:UnityEngine.UI を追加する。つまり"ushing UnityEngine.UI;"という一行を追加する
2 問題の行の"GUIText"を"Text"に直す。つまり"public Text camSwitchButton;"と書きなおす
この二つの変更だけで、問題は解消するということ。やってみましょう!
これを上書き保存してUnityに戻ったら、ナニゴトもなかったかのように動きましたw。
教訓として。
AssetStoreで広範囲に配布されているフリーのAssetであっても油断はできない。さすがはUnity、どうしようもなく細かいところに爆弾が隠れていたりします。読み込んだAssetでエラーになった時は、落ち着いてエラーメッセージが指定しているファイルを探し出して、手動で怪しいところを直すしかなさそうです。
問題となっているファイルが、使う予定のないアイテムだったら、エラーが出たファイルをそもそもインポート対象から外してAssetを取り込みなおす、というのも有効かもしれません!まぁこれをやる場合、あらかじめAssetの中で、「どのファイルは使うけど、どのファイルは別にいらない」という峻別がつかないといけないわけですが・・・コードをどう直せばいいのか見当もつかない、となった場合の最終手段として、エラーを出しているファイルをそもそも追い出す、というのはオプションとして頭に置いておくのがいいのかもしれません!