新しいこと、枯れたこと問わずサムザップ大庭が興味を持ったものを調査、生活の効率を求める完全趣味の技術ブログ。基礎を大事にしています。R」というショートカットをクラス名の部分にフォーカスした状態で使うと、そのクラスを使用している箇所の参照がリストアップされます。「あ、このファイルどこからも参照されてないし、使ってないから消してしまおう!」って思うことは開発中にはよくある話です。Unityの場合は、コード上の参照がないからといって100%使用していないという保証はありません。2つの可能性があります。※コード上参照が存在しないHoge.csというコンポーネントを例とします1.シーンファイルに存在する場合Prefabにもなってなくて、Hierarchy内のGameObjectにアタッチされている状態。2.Prefabにアタッチされて存在する場合Hierarchyにはなく、Projectブラウザにのみ存在するPrefabにアタッチされている状態。StudioではHogeコンポーネントが使用されている事を確認することは出来ません。ここからその調べ方を紹介していきます。GUIDで検索AddComponentされたコンポーネントはGUIDと呼ばれるユニークIDで管理されます。Hoge.csコンポーネントのGUIDがd084434c9c3e54a3aac63090dab2b5e6だったとすると、この値がシーンファイル、prefabどちらにも存在しないことが確認されて初めてHoge.csは使用されていないと断定できます。私はgrepコマンドで調べちゃいます。カレントディレクトリをAssetsにして、以下のコマンド実行します。.※-rオプションは指定したディレクトリ配下を再帰的に検索します。3}こんな風に検索に引っかかってしまうということは、Hoge.csは使用中という事になります。GUIDの調べ方GUIDは作成したファイル、ディレクトリと対で存在する.metaファイルに記載されています。Hoge.csであれば、同階層にHoge.cs.metaというファイルが存在するのでそちらを開きます。guidというキーを探し、そのバリューがGUIDという事になります。ここではd084434c9c3e54a3aac63090dab2b5e6がGUIDになります。【注意】シーンファイルをテキストに変換シーンファイルやPrefabファイルは設定によってはバイナリデータになっている可能性があります。すると、GUIDを調べる事は出来ません。そこでシーンファイルをテキストデータに変換してみます。Editorを開きます。することでシーンファイル(.unity)やPrefabファイルがテキストファイルとして扱われるようになります。d084434c9c3e54a3aac63090dab2b5e6最終的に、Hoge.cs.metaだけが検索に引っかかる状態であれば、Hoge.csは使用されていないということになります。まとめリファクタリングしている最中に発生しがちなファイルの削除ですが、Unityの場合はパッと見、使っていないように見えてしまうのが非常に厄介なところです。削除しただけだとコンパイルエラーは出ません(ランタイムエラーは出る可能性はあります)。そのコンポーネントがアタッチされているGameObjectは、何か挙動がおかしい状態になり、インスペクタを確認するとMissingと表示されます。時間が経った後に見つかってしまうと、何のファイルが消されたのかさえ分からなくなります。複数人開発ならなおさらです。非常に危険な状態です。ファイルを削除するときは、シーンファイルとPrefabの2つのポイントに細心の注意を払いましょう!私も以前痛い目を見たので、戒めとしてこの記事にまとめた次第です。11:50Unityでファイルを削除するときに必ずチェックしたい2つのポイントTweet読者になるボタンを押して貰えるととてもがんばれます。大庭俊介(bao_bao)渋谷のUnityエンジニア。スマホゲーム作って生活しています。設計、組み込み、演出一通りを自分1人で完結して作るのが得意です。よろしければTwitterフォローお願いします。(@ohbashunsuke)株式会社サムザップでUnityエンジニアとしてスマホゲーム作っています。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。