Unity と Mac で開発する Oculus Go アプリ #6 フォルダ構成について考える


Oculus & Unity 初心者が開発するまでのメモ
もし「◯◯を考えると、こっちのほうがよい」的なものがあれば、ぜひコメント頂けれると幸いです

フォルダ名のルール

Unity マニュアルにある特殊なフォルダー名を見てみると...

Unity に命令として読み取られる特殊なフォルダー名が存在します。
これらのフォルダー名は、そのフォルダー内のコンテンツが特定の方法で扱われるよう指定する機能を持っています。
例えば、エディタースクリプトが正しく機能するためには Editor フォルダーに置く必要があります。

原則、フォルダ名は自由だけど、予約名があるらしい

特殊なフォルダ名 意味
Assets Unity プロジェクトで使用するアセットが含まれているフォルダー
要はroot
Editor ここに置かれたスクリプトは、ランタイムスクリプトではなく、エディター用のスクリプトとして扱われるらしい
Editor Default Resources エディター用スクリプト置き場
Editor Default Resources フォルダーは 1 つしか作成できず、Project のルートに配置する必要がある
Gizmos シーンビューにグラフィックスを追加して、目に見えないデザインの詳細を可視化することができる
Gizmos フォルダーは 1 つしか作成できず、Project のルートに配置する必要がある
Plugins プラグイン置き場
大体は DLL ファイル
Plugins フォルダーは 1 つしか作成できず、プロジェクトのルートに配置する必要がある
Resources シーンのアセットのインスタンスを作成する代わりに、スクリプトから Resources.Load 関数を使って読み込む
Standard Assets 標準のアセットパッケージをインポート ( Assets > Import Package) すると、アセットが Standard Assets フォルダーに入る
Standard Assets フォルダーは 1 つしか作成できず、Project のルートに配置する必要がある
StreamingAssets アセットを別のファイルで元の形式で使用するときに使う
例えば、ビデオファイルをムービーテクスチャとして使用するのではなく、ファイルシステムからアクセスする際に配置する
StreamingAssets フォルダーは 1 つしか作成できず、Project のルートに配置する必要がある

スクリプトのコンパイル順

Unity マニュアルにある特殊フォルダーとスクリプトのコンパイル順を見てみると...

  • フェーズ 1: Standard Assets 、 Pro Standard Assets 、 Plugins のフォルダーに入ったランタイムスクリプト
  • フェーズ 2: Standard Assets 、 Pro Standard Assets 、 Plugins のフォルダー内にある Editor フォルダーのエディタースクリプト
  • フェーズ 3: Editor フォルダーに入ったもの以外のすべてのスクリプト
  • フェーズ 4: 残りのすべてのスクリプト (つまり、Editor フォルダー内のスクリプト)

フォルダ構成

以上を踏まえて、考えてみました
なお、フォルダは必要に応じて作成するので、予め全部作っておく必要はない

フォルダ名 説明
Assets/ root
 ∟Plugins/
 ∟Editor Default Resources/
 ∟Gizmos/
 ∟Standard Assets/
 ∟StreamingAssets/
 ∟{app name}/ アプリケーション名まはた開発プロジェクト名
  ∟∟Scripts/ シーン共通のScript
  ∟∟Prefabs/ シーン共通のPrefabs
  ∟∟Scenes/
   ∟∟∟{scene name}/ シーンごとにフォルダを作成
    ∟∟∟∟{scene}.unity シーンファイル
    ∟∟∟∟Scripts/ このフォルダのシーンでしか使わないScript
    ∟∟∟∟Prefabs/ このフォルダのシーンでしか使わないScript

基本的には、シーンごとに細かくフォルダ分けをするか、共通で持つかによってフォルダは異なる
例)Animationsなど

※ なんでフォルダ名にスペースありなしがあるねん...

参考にさせて頂きました