Version: 2021.1
言語: 日本語
インポーターの一貫性
アセットデータベース

アセットのメタデータ

When Unity imports assets, it also stores and manages additional data about the asset for you, such as what import settings should be used to import the asset, and where the asset is used throughout your project. Below is a description of how this process works:

  1. Unity がアセットに固有の ID を割り当てます。
  2. Unity がアセットファイルに付随する .meta ファイルを作成します。
  3. Unity が アセットを処理します

The Import settings for any given asset affects how Unity processes the asset. If you modifying the asset file, or any of the asset’s import settings, Unity will reimport the asset. For more information, see Assets and their import settings.

固有の ID

Assets フォルダーに テクスチャなどのアセットを保存すると、Unity が新しいファイルの追加を検出します。なぜなら、Assets フォルダーのコンテンツはエディターによって既知のアセットのリストと頻繁に照合されているからです。

Unity は新しいファイルを見つけると、固有の ID をアセットに割り当てます。これは Unity がアセットを参照するために内部的に使用する ID で、Unity は何も壊すことなくアセットの移動や名前の変更を行うことができます。

ID は通常、エディターでは表示されません。

メタファイル

The image below shows .meta files that Unity creates for each item in your project’s Assets folder. Unity creates meta files for asset files and folders.

They are hidden in Unity’s Project window, and you may also find they are hidden in your file system by default, so you may not see them in Windows Explorer or Finder unless you make your hidden files visible on your computer.

The relationship between the Assets folder in your Unity project on your computer, meta files, and the Project window in Unity
The relationship between the Assets folder in your Unity project on your computer, meta files, and the Project window in Unity

この例は、Unity がプロジェクトの Assets フォルダー内の各アセットまたはフォルダーに対して .meta ファイルを作成して、それらがシステムファイルブラウザーに表示されることを示しています。ただし、これらの .meta ファイルはデフォルトで 非表示 になっているため、Project ウィンドウには表示されません。Mode プロジェクト設定から Visible Meta Files を選択すると、それらを表示することができます。

Unity がアセットの .meta ファイルを作成するとき .meta ファイルの内部にアセット ID を書き込み、アセットファイルと同じ場所にその .metaファイルを保存します。

As well as the unique ID assigned to the asset, the .meta files contain values for all the import settings you see in the Inspector window when you select an asset in your Project window. For example, for a Texture, this includes the Texture Type, Wrap Mode, Filter Mode and Aniso Level import settings.

アセットのインポート設定を変更すると、新しい設定は アセットに付随する .meta ファイルに保存されます。Unity は更新された設定に従ってアセットを再インポートし、プロジェクトの Library フォルダー内のそれに対応する既存の “ゲーム専用” データを更新します。

Important: Meta files contain important information about how the asset is used in the Project and they must stay with the asset file they relate to. If you move or rename an asset within Unity’s own Project window, Unity will also automatically move or rename the corresponding .meta file. If you move or rename an asset outside of Unity (i.e. in Windows Explorer, or Finder on macOS), you must move or rename the .meta file to match.

If an asset loses its meta file (for example, if you moved or renamed the asset outside of Unity, without moving/renaming the corresponding .meta file), any reference to that asset will be broken in your project. In this situation, Unity would notice the asset does not have a corresponding meta file and generate a new one for the moved/renamed asset as if it were a brand new asset, and delete the old “orphaned” .meta file.

As an example of the types of problems this could cause, in the case of a texture asset losing its .meta file, any materials which used that texture will now have no reference to that texture. To fix it you would have to manually re-assign that texture to any materials which required it.

Or, in the case of a script asset losing its .meta file, any GameObjects or Prefabs which had that script assigned would end up with an “unassigned script” component, and would lose their functionality. You would have to manually re-assign the script to these objects to fix this.

空のフォルダー、メタファイル、バージョン管理

In Unity, folders in your project’s Assets folder are assigned their own .meta file - however some version control systems (VCS) can’t store empty folders. This means when you add or delete an empty folder from your project, your VCS will store the .meta file as added or removed, but won’t store the change of adding or removing the folder itself, which can be confusing or problematic.

この問題を解決するために、Unity は空のフォルダーに関して以下のような特定の動作をします。

Unity が対応するメタファイルを持たない空のフォルダーを検出すると、そのフォルダーに以前メタファイルがあった場合、VCS の他のユーザーによるフォルダーの削除によってメタファイルが削除されたとみなし、その空のフォルダーをローカルで削除します。

Unity があるフォルダーの新しいメタファイルを検出したがそのフォルダーがローカルに存在しない場合、Unity は新しいメタファイルが VCS の他のユーザーによるフォルダーの追加によって作成されたものとみなし、対応する空のフォルダーをローカルに作成します。

インポーターの一貫性
アセットデータベース