2019-11-02Packageとは?すごくざっくりいうと、Assetのデータを外部にエクスポートする仕組み。Sceneやprefabを.packageというファイルにまとめてエクスポートしてくれる。エクスポートするだけじゃなく、Unity内部で持っている参照関係や、Imageコンポーネントで使っている画像データを自動で検出してまとめてエクスポートしてくれたりするすごいやつ。(例えばSceneをエクスポートすると、Sceneの中に入っている画像やスクリプトだけ取り出してpackageの中に含めてくれる。)Unityエディタ内で作成したデータを受け渡す際に必須になる機能。Packageを使うの?生のファイルの受け渡しではダメなの?ダメ。いうと、Unityエディタ内で紐づいているファイル同士がバラバラになってしまうから。UnityではmetaファイルとUUID,Sceneビューからの参照情報などを使ってデータの依存関係を管理しているが、手動でファイルを移動させるとこのUUIDが書き換わってしまい、参照が切れた状態になって設定が狂ってしまう。packageを使うとこの参照情報を保った状態で受け渡しを行えるため、packageを使う必要がある。参照切れは小さなファイルなら手でも直せるが、GameObjectの数が数百に登る大きなファイルであれば参照切れを手で修正するのはほとんど不可能。絶対package使ってね。興味がある場合は「.metaファイル」「UUID」などでググると有益な情報がヒットするかも。Packageを使ってみよう今回はメッセージウィンドウのprefabを作ってpackageで出力してみる。適当なプロジェクトデータを用意して、下記のようなメッセージウィンドウを作成。Viewの任意のディレクトリにD&Dし、Prefab化する。ちなみにPrefabというのはインスタンスの情報を保存したテンプレートのようなもの。package...をクリック。このとき、Backgroundに使用した画像が含まれていることを確認。ダイアログでExportをクリックする。package完成!PackageをインポートするPackageは別のプロジェクトにインポートできる。別のプロジェクトを開いて、作成したPackageをダブルクリックする。基本は共通化する部品をprefabにする(ボタンとか.)こうすることで、packageを読み込むだけで変更が反映されて欲しい部分全てに変更が反映されるようになる。さらなる学習のためにprefabの分け方は勉強すると良い。Design:UIを原子、分子などの単位に分けて、それらを組み合わせることで再利用性を高めようという設計パラダイム。webフロントエンドの分野で主流。コンポーネント志向:コンポーネントという単位で機能を区切り、それらを組み合わせる事でソフトウェアを構成する設計パラダイム。Unityはコンポーネント志向に基づいて作られている。Unity公式ドキュメント:Unity2019からprefabを入れ子構造にすることができるようになり、再利用性が飛躍的に高まった。知っておくと非常に便利なので、発展的な知識を得たい場合は必読。