# テキストシリアル化ファイルの形式

> Understand the structure and syntax of Unity's text-based serialization format for scenes and assets.

Unity のシーン形式は YAML データシリアル化言語のカスタムサブセットを使用します。YAML はオープン形式であり、[YAML のウェブサイト](http://yaml.org/spec/1.2/spec.html) でドキュメントが公開されています。Unity で使用される YAML の詳細については、[UnityYAML](/engine/6000.0/manual/unity-editor/editor-features/text-scene-format/unity-yaml.md) のドキュメントを参照してください。

ファイルはシーンの各オブジェクトを別々の YAML ドキュメントとして書き込みます。`---` シーケンスがファイル内の各オブジェクトを表します。このコンテキストでは、"オブジェクト" という用語は、ゲームオブジェクト、コンポーネント、その他のシーンデータをまとめて指します。これらの各アイテムは、シーンのファイルに独自の YAML ドキュメントを必要とします。以下の例は、シリアル化されたオブジェクトの基本構造体を示しています。

```
--- !u!1 &6
GameObject:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  importerVersion: 3
  m_Component:
  - 4: {fileID: 8}
  - 33: {fileID: 12}
  - 65: {fileID: 13}
  - 23: {fileID: 11}
  m_Layer: 0
  m_Name: Cube
  m_TagString: Untagged
  m_Icon: {fileID: 0}
  m_NavMeshLayer: 0
  m_StaticEditorFlags: 0
  m_IsActive: 1
```

最初の行にはドキュメントマーカーの後に `!u!1 &6` 文字列を含みます。`!u!` の後の最初の数字はオブジェクトのクラスを表します (この場合ではゲームオブジェクト)。続く & の後の数字はファイルの中で一意のオブジェクト ID 番号ですが、この番号は任意に各オブジェクトに割り当てられます。各オブジェクトのシリアライズ可能なプロパティは以下のような行により記されます。

```
m_Name: Cube
```

プロパティの名前は一般的に `m_` で始めて、スクリプトリファレンスで定義されたプロパティの名前で続けます。以下の例では、ファイルの下の方で 2 つめのオブジェクトの定義を示しています。

```
--- !u!4 &8
Transform:
  m_ObjectHideFlags: 0
  m_PrefabParentObject: {fileID: 0}
  m_PrefabInternal: {fileID: 0}
  m_GameObject: {fileID: 6}
  m_LocalRotation: {x: 0.000000, y: 0.000000, z: 0.000000, w: 1.000000}
  m_LocalPosition: {x: -2.618721, y: 1.028581, z: 1.131627}
  m_LocalScale: {x: 1.000000, y: 1.000000, z: 1.000000}
  m_Children: []
  m_Father: {fileID: 0}
```

以下の例は、上記の YAML ドキュメントによって定義されたゲームオブジェクトにアタッチされた Transform コンポーネントを示しています。`{fileID:6}` は、ファイル内のゲームオブジェクトのオブジェクト ID が 6 のゲームオブジェクトを表すのに使用されます。

```
m_GameObject: {fileID: 6}
```

...

10 進数、または IEEE 754 形式 (プレフィックス 0x で始めます) の 16 進数の表示は、浮動小数点数を表すのに使用されます。Unity では、IEEE 754 表記はデータ喪失のない値のエンコーディング用に用いられたり、short 型の小数表記法がない浮動小数点の値を記述するときに使用されます。Unity が 16 進数で数字を記述するとき、デバッグ目的で 10 進数表記を括弧の中に併記しますが、実際には 16 進数のみがファイルのロード時にパースされます。そのような値を手動で編集したい場合は、16 進数を取り除いて、10 進数のみを入力してください。以下は、浮動小数値の有効な表記方法です (すべて数値 1)。

```
myValue: 0x3F800000
myValue: 1
myValue: 1.000
myValue: 0x3f800000(1)
myValue: 0.1e1
```

***

*
