Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
97
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@keidroid

Unity2D+NGUIでゲーム作るよ! その0

Unityをはじめて3ヶ月たったので習得時につまづいたところや思うところを色々書いていきます(`・ω・´)

0.1 Unityでのゲームの考え方

Unityでゲームを作成する際、以下のように考えるとスムーズに習得できると思います
1.ゲームは複数のSceneで構成される
2.Sceneは複数のGameObjectで構成される
3.GameObjectは複数のComponentで構成される

--

1.ゲームは複数のSceneで構成される

Sceneとは「タイトル画面」「ステージ画面」「ゲームオーバー画面」のことです。
Unityではそれぞれを用途・機能によって独立した画面として扱います。
SceneはUnityでは「*.unity」という拡張子のファイルです。

↓これ
スクリーンショット 2013-12-27 2.58.43.png
 
2.Sceneは複数のGameObjectで構成される

シューティングゲームを例に挙げるとGameObjectとは「自機」「敵機」「自機の出す弾」などです。
GameObjectは独立して移動したり衝突を検知したりすることができます。
Unityでは再利用可能/動的生成可能なGameObjectを「Prefab」と呼びます。
PrefabはUnityでは「*.prefab」という拡張子のファイルです。

↓これ
スクリーンショット 2013-12-27 2.59.38.png

 
3.GameObjectはComponentで構成される

「オブジェクト」は以下の様な様々な機能で構成されます。
・座標の定義(Transform)
・画面への表示(Renderer)
・衝突の検出(Collider)
・音声再生(Audio)
etc..

Unityでは上記のような機能の一つ一つをComponentと呼びます。
GameObjectには複数のComponentを持たせることができます。
また、自分で記述したScript(Javascript,C#,Booで記述)をComponentとして扱うことができます。
(※いくつかのルールに従う必要があります。詳しくは後述)

↓これ
スクリーンショット 2013-12-27 3.00.03.png
 

0.2 MonoBehavior

Unityでゲームをつくろうとし、Scriptを作成すると以下の様なファイルが作成されます。

NewBehaviourScript.cs
using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour
{
    void Start () {
    }

    void Update () {    
    }
}

これはMonoBehaviourを継承したクラスです。
MonoBehaviourを継承したScriptはComponentとしてGameObjectに追加できます。
MonoBehaviourはUnityのコアとなる多くの機能が定義されているので何度もリファレンス読んで理解するのがおすすめです。

そしてScriptをComponentとして扱うにはいくつかのUnity独自ルールがあります。
- コンストラクタを書いてはいけない
 (コンストラクタ動作が保証できないため。Awake()もしくはStart()で初期化処理をかく)
- class名とファイル名は同じにする
 (同じにしないとエラー)
- 調整や紐付けが必要なメンバ変数はserializefieldにし、Inspectorで編集可能にする

--
ざっくりはじめての人向け概要と用語説明おわり。
次回(その1)は実際にUnityでゲームの枠組み作成&2D画像表示をやってみるところ

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
97
Help us understand the problem. What are the problem?