Unity のシーン形式は YAML データシリアライズ言語により実装されています。ここでは YAML について深く掘り下げませんが、オープンな形式であり仕様については無料で http://yaml.org/spec/1.2/spec.html にて確認できます。シーンの各オブジェクトはファイルに対して別 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_” で始めて、スクリプトリファレンスで定義されたプロパティーの名前で続けます。二つめのオブジェクトはファイルの中でその下に定義していき、次のように書きます。
--- !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 コンポーネントです。アタッチはこの行により記述します。
m_GameObject: {fileID: 6}
… このように記述するのは、ファイル内でのゲームオブジェクトのオブジェクト ID が 6 であったためです。
浮動小数点数は、IEEE 754形式(0x プレフィックスで示されます)の 10進数表記または16進数で表します。IEEE 754表記は、値のロスレス符号化に使用され、短い 10進数表記を持たない浮動小数点値を表すときにUnityによって使用されます。Unityが 16進数で数値を書き込むときには、デバッグの目的で括弧で10進数の書式でも表記しますが、ファイルをロードするときには 16進数のみを実際にパースします。このような値を手動で編集する場合は、単に16進数を削除し 10進数のみを入力します。以下は、浮動小数点値の有効な表現です (すべて 1を表しtています)。
myValue: 0x3F800000
myValue: 1
myValue: 1.000
myValue: 0x3f800000(1)
myValue: 0.1e1
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.