半年くらい前に触ったきりのプロジェクトを更新しました。
2018.2.11から2019.1.8へバージョンアップをしたりして。
色々アプリをアップデートしていこうと思い立ったわけですが、フォルダがめちゃくちゃだった。その時は自分なりに整理していたつもりだったんですが。
はっきり言ってやりづらかった。
でもそれだけ成長したのかなとも思えて。
どこが変わったのかをまとめてみました。
導入したアセット
前:アセットストアからインポートしたあとにカテゴリごとに分けていた
今:インポートしたままフォルダを移動させない
絶対守った方が良いと思います。ツール系のアセットは特におかしくなるかも。
シーン(.sceneファイル)
前:Scenesフォルダにまとめて入れてた
今:Assets/_Myfolder/Scenes/シーン名/.sceneファイル
シーンだけで使うアセット、テクスチャをまとめるためにシーン毎にフォルダを作ることにした。
プレハブ、マテリアルは機能ごとに分ける。
シーンが少なかったりするときは分けてない。共通して使う素材が多い場合も分けてない。
アプリ中で1つのシーンしか使わないときはどこでも良い気がする。
マリオみたいにステージが沢山あって、ステージごとにシーンを作っているとかならフォルダにまとめる。フォルダ名は自分が分かりやすい名前にしておく。難易度ごとに分けるとか、ステージの進行順で分けるとか。
スクリプト、プレハブ、音、テクスチャ、マテリアル
前:それぞれScriptフォルダ、Prefabフォルダ、Soundフォルダとかファイルの種類を基準に分けてた。
今:Assets/_MyFolder/以下で機能ごとに分けている。
機能ごとに使う素材をまとめて入れてる。
武器に関するものならAssets/_MyFolder/Weapons/とか
スクリプトもプレハブも画像も音もまとめる。
ファイルの数が多いなら機能のフォルダの中でさらにフォルダを作る。
プレハブとかファイルとか探すときは機能をもとに探すことが多かったので、こうするようにした。
あとスクリプト修正したときにそのスクリプト持ったプレハブのファイルが別なところにあると、探しにいくのが面倒だったし。
Assets/直下でもいいけど自作のアセットとAssetStoreのアセットと分けておきたいので自分専用のフォルダに入れている。
使いまわせるやつならAssets/直下でもいいかも。
スクリプト
機能ごとにAssemblyDifinitionファイルを作って分けている。
スクリプトのインポートが早くなるらしいのと参照が分かった方がクラスの依存とか分かるかなと思って。
いちいちasmdefファイルを作るのが面倒ではあるけど。
asmdefで区切ったスクリプトは、AssemblyCSharpに属するスクリプト(asmdefで区切ってないスクリプト)を参照できないので、アセットストアのスクリプトを参照したいときに、そのアセットがasmdefで区切ってないと参照できないことがあるのが面倒。
効果音アセット
前:効果音のアセットを全部インポートしていた
今:適当なプロジェクトに効果音のアセットを全部入れて、Unityを使わずにファイルのエクスプローラから音声を再生して使いたいものだけインポートする
効果音系のアセットは数が多いから全部いれると探すのが面倒だしプロジェクトが重くなる。必要なものだけいれる。
アセットのフォルダはUnityパッケージで入っているため、一度プロジェクトにインポートしないと見れないと思うので、プロジェクトを作る必要がある。
効果音すべてをパソコン内のフォルダにまとめておいて検索できるようなEditor拡張とか作ってみたいかも。
自分で作ったものは自分のフォルダ以下に入れるようにして、アセットは導入した後にフォルダを変えたりしない。
コメント