2013年5月31日金曜日

【Unity】GameObjectとComponent

ブログサボってました。
なんでもいいから毎日書こう~。

黄本は迷路のところまでやりました。
ちょっと休憩して今日はUnityのチュートリアルを見てました。

序盤はすごい勢いで読み飛ばしたけど
GameObjectの項が面白かったのでちょっと遊んでみた。

GameObject

ゲーム内のオブジェクトは全てGameObjectなんだそうな。
CubeやSphere、CameraやLightも全部GameObject。
でも、GameObjectは何もしません。って書いてある。ただの箱だってさ。
矛盾してるね。

ここでいうCubeとかはカスタマイズされたGameObjectだそうな。
空っぽのGameObjectは何もしないからいろいろなピースを入れてやる必要があるんだって。
ピースのことをComponentと呼ぶそうな。
  • Cubeとか = 空のGameObject + いくつかのComponent なんだね!

Component

ComponentはGameObjectに機能を追加するためのもの。
最も基本的なものに座標、縮尺の情報を持たせるためのTransformコンポーネントがあるってさ。
また、GameObjectは必ずTransformコンポーネントを持っているらしい。

へ~。見てみよう。

確認

Cubeの作成

Sceneの新規作成→Hierarchy→Create→Cube
Cubeオブジェクトを追加
とりあえずよく使うCubeを置いてみた。

Hierarchyビューは編集中のSceneに存在するGameObjectの一覧とみて間違いなさそうですね。

また、GameObjectを選択したときのInspectorビューには含まれるComponentが表示されるんだね。

Cubeには最初から
  • Transform
  • Cube(Mesh Filter)
  • Box Collider
  • Mesh Renderer
の4つのコンポーネントが含まれていることが分かりました。

なるほど。じゃあ空のGameObjectに同じもの追加すればCube作れるよね。

空のGameObjectの作成

GameObject→CreateEmpty
空のGameObjectを追加した
空のGameObjectが作られた。
確かにTransformコンポーネントは最初からありますね。
なので座標や縮尺は入れられます。(見えないですけど)

Transformコンポーネントは右クリックしてもRemove Componentは押せませんでした。
必須というだけはありますな。

じゃあ順番にComponent足していきます。

Cube(Mesh Filter)の追加

名前からして形を作ってるのはこれでしょうねー。
Add Component→Mesh→Mesh Filter
Mesh Filterを追加
Mesh Noneってなってるので
右端の丸いのクリック→Cubeを選択
Mesh選択
Cubeメッシュが適用されたんだと思う。(見えない)

Mesh Rendererの追加

Add Component→Mesh→Mesh Renderer
マテリアルが参照されてないので丸いのクリック→Default Diffuseを選択
Rendererが追加された
見えるようになりました。

MeshをRenderするのがRendererですよね。(適当)
  • MeshをSphereにすると球に変わります。
  • RendererのMaterialを変えると見た目が変化します。
名前から想像した仮説はあってたみたい。よかった。

じゃあHierarchyビューのCreate→Cubeは
プリセットされた【GameObject + Component * 4】を作ってるにすぎませんねー。
よく使うから定義してあるんだね。

Box ColliderってComponentは衝突判定とかに使うやつだろうしまた今度にしよう。

今日のまとめ

  • GameObjectはただの箱
  • GameObjectは1つ以上のComponentを持つ
  • GameObjectは必ずTransformComponentを持つ
  • Mesh+Rendererで見えるようになる
Unityおもしろ!


Unity系記事まとめ

スポンサーリンク

Related Posts Plugin for WordPress, Blogger...