Unityといえばゲーム制作のスタンダード。きっと使いやすいツールに違いない....と思いきや結構難しいです。
概念が独特で慣れが必要なところが多々あるので記録用にまとめておきます。
難しい概念やつまづきポイントのまとめ
画像データのテクスチャタイプ、スプライト
画像ファイルをアセットへドラッグすれば、画像のアセットがすぐできます。
「テクスチャタイプ」という設定があり、これを変更しないと動作しない場合があります。
通常は「デフォルト」ですが、ものによって「スプライト(2DとUI)」に指定しないといけません。
以下の記事をみると、その理由がわかりました。
画像のテクスチャタイプを「スプライト」にすると、ポリゴンデータとして生成されます。
これによって、画像の切り抜きで余計な計算が発生しません。
結果としてゲームパフォーマンスを落としません。
Unityのスプライトについて【Sprite】 | ゲームの作り方! (dkrevel.com)
スクリプトからアセットのデータの読み込み
スクリプトで動的にテクスチャなどを切り替える場合、アセットのデータは、「Resources.Load」で取れると思っていたらとれませんでした。
これだけで半日原因究明ですすみませんでした。
アセットに「Resources」フォルダを作ってそこにいれないといけません。
またResourcesが多い場合には、AssetBundleなどの対策が必要そうです。
【Unity】僕はそろそろResourcesフォルダを卒業しようと思う - LIGHT11 (hatenadiary.com)
Resources.Loadで見つからない場合はNullになるのでチェックをいれたほうがよさそうです。
シーンを含める
たぶんUnityでの作品作りではシーンを分けて作ると思います。
「ファイル>ビルド設定」をひらいて、「シーンを追加」しておかないとシーンが認識されず、移動できません。
感覚的には「シーンを作れば自動でビルドに含まれ、後でビルドから削除は可能」ってほうが普通な気もしますが。。
その他
動的に取得したマテリアルなどは明示的に廃棄しておく。
【Unity】Renderer.materialで取得したマテリアルは自分で破棄しないとリークする話 - LIGHT11 (hatenadiary.com)
本ブログのUnity関連記事一覧はこちら。