About
このページは身内向けのUnityワークショップ用に作られたドキュメントです。
まったくUnityを触ったことない人向けの資料になります。
Unityでつくるゲームの構成
- ひとつのゲームはProjectとという単位で構成されます。
- そしてそのProjectの中に、Sceneというものがあります。これはゲームの1ステージに対応するものと思ってください。
- そしてそのSceneの中に、GameObjectというものがあります。これはステージの中のキャラクターやカメラ、アイテム、地形等に相当します。
Unityのインターフェース
Unityを開くと「Scene」とか「Hierarchy」だとか色んなウィンドウがあります。これらはビューと呼ばれます。
このページで簡単に説明しています。
以下引用。
Sceneビュー
シーンビューには製作中のゲーム世界(シーン)が表示され、自由な位置・角度から眺めることができます。
Gameビュー
ゲームビューはゲーム画面です。 ゲームプレイヤーは基本的にこの画面を見ながらゲームをプレイします。 またUI等の操作はこの画面で行います。
Inspectorビュー
シーンの中で選択肢中のオブジェクトが持つ属性を表示・編集するためのビューです。 属性には座標やメッシュといった見た目上のものから、衝突判定や物理制御に冠するパラメーターなどもあり、その他ユーザー定義のものもここに表示されます。
Hierarchyビュー
シーン内に存在するオブジェクトの一覧が表示されます。 編集中のシーン内でオブジェクトをコピー/ペーストしたり、適切な名前をつけて整理することもできます。
Projectブラウザ
製作中のプロジェクト(ゲーム全体)に含まれるシーン、スクリプト、グラフィックやサウンドなどのデータ、その他のリソースがファイル単位で表示されます。ここに出来合いのスクリプトセット、アートアセット、シェーダーなどを「パッケージ」単位でインポートすることもできます。
その他
- ゲームの再生
- 上の▶ボタンを押すと、ゲームが始まります。デバッグで使います。
- 左上の5つのボタン
- Sceneビューでのマウスでできることを切り替えます。
シーンにオブジェクトを追加する
ヒエラルキービューで右クリックすると、様々なオブジェクトを追加することができます。
試しに「3D Object」→「Plane」を選んでみましょう。画面に地面が追加されます。
他にも、最初から色んなオブジェクトがUnityでは準備されています。
コンポーネント
オブジェクトにはコンポーネントと呼ばれるものがアタッチされています。
これはオブジェクトの機能にあたるもので、ゲームオブジェクトの動作の基礎です。
Cubeオブジェクトを配置して、コンポーネントを少し見てみましょう。
Hierarchy右クリック→「3D Object」→「cube」を選んでください。
Inspectorビューに「Tranfrom」やら「BoxCollider」やらが表示されていると思います。これがコンポーネントです。
Transform
オブジェクトの位置、回転、スケールの情報を管理するコンポーネントです。
Collider
あたり判定を計算するためのコンポーネントです。
これがないと他のオブジェクトと衝突しません。
Mesh
3Dのオブジェクトを形付けるものと思っておきましょう。
RigidBody
物理演算をするためのコンポーネントです。
これがアタッチされていると、重力やその他の力の計算をしてくれます。
Script
自分で書いたプログラム(スクリプト)をアタッチすることで、任意の動作をさせられます。
次項で説明します。
スクリプト
空っぽの状態のスクリプトを以下に記述します。
using UnityEngine;
using System.Collections;
public class Hoge : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
}
C#分かんないって人は、とりあえず上4行近くは無視してください。
大事なのは、Start()とUpdate()って関数です。
Start()
Start関数は、一番初めに一回だけ呼ばれる関数です。
ここに初期化処理を書くのが基本です。
Update()
毎フレームごとに呼ばれる関数です。
基本的に制御の内容を書いていきます。
フレームって?
ここでは、ゲーム内の最小の時間単位と思ってください。詳しくはこちら。
物体を移動させてみよう
Update()内に次のコードを書いてみましょう。
transform.position += new Vector3(0.1f, 0.0f, 0.0f);
tranfromのpositionをVector3(0.1f, 0.0f, 0.0f)の分だけ足す、という処理です。
Unity3Dの座標は、このVector3を使って作る(表現する)ことができます。
デバッグログを出してみよう
以下の関数を呼び出すと、コンソールにログを書き出すことができます。
Debug.Log("Hello, debug log.");
疲れたのでこの辺で。