Unityの概念
https://gyazo.com/80af2ddd1d5ebf84d820879ce4560295
Scene
ゲームでいう1ステージ、1ゲームレベル
舞台、Unityにおけるプレイヤーが見る世界のすべて
別のSceneに遷移することでゲームレベル間の移動を実現する
GameObject
Scene内のすべてがGameObjectである
様々なComponentをAddすることができる(次項参照)
空のGameObject(EmptyObject)を作ってComponentをAddしてStart関数内でゴニョゴニョすれば、動的にいろいろなことができる
Component
GameObjectにAddすることができるスクリプトのこと
各Componentは、基本的に以下のようなスクリプトになっている
code:c-sharp
public class HogeComponent : MonoBehaviour {
void Start () {
}
void Update () {
}
}
Startが、GameObjectが生成された時に呼ばれる関数
Updateが、Unityの実行する各フレームごとに繰り返し呼ばれる関数
MonoBehaviour
Camera
プレイヤーの視点となるGameObject/Componentのこと
プレイ中に画面に表示される
任意のGameObjectにCamera Componentを追加すれば、それがプレイヤーの視点となる
Unity標準のMain Cameraは削除して、ライブラリが提供してくれるXR対応済みのCamera Rigと呼ばれるPrefabを使うことが多い
複数のカメラを設置してスクリプトで動的に視点を切り替えることもできる
マルチディスプレイ環境なら、Camera Componentを複数配置することができる
スクリプトでマルチディスプレイを有効にする必要がある
MHDとPCの画面で別々の表示をすることも可能
Skybox
Cameraにコンポーネントとして追加することで画面全体を覆う空がつくれる
Terrain
地形を自動生成できるGameObject
Prefab
GameObjectのComponentとプロパティすべてを格納しているテンプレートのこと
インスタンス化したPrefabは、インスタンスごとのプロパティを持つ
Input
標準でキーボード、ジョイスティック、ゲームパッド入力をサポートしている
Unityのデフォルトのキーバインド
Horizontal と Vertical: w、a、s、d と矢印キー
Fire1、Fire2、Fire3: それぞれ Ctrl、Opt(Alt)、Cmd キー
Mouse X と Mouse Y: マウスの動きのデルタ
Window Shake X と Window Shake Y: ウィンドウの動作
プレイヤー本人を表すGameObjectで適当なComponentを追加して、
code:c-sharp
public class ExamplePlayer : MonoBehaviour
{
public void Update()
{
var x = Input.GetAxis("Horizontal") * Time.deltaTime * 150.0f;
var z = Input.GetAxis("Vertical") * Time.deltaTime * 3.0f;
transform.Rotate(0, x, 0);
transform.Translate(0, 0, z);
}
}
とかやれば、FPSのような基本的な移動を実現できる
Texture
ビットマップイメージのこと
Material
Textureにタイリング情報、カラー、Shaderなどのプロパティを追加した概念のこと
Shader
GameObjectの各ピクセルをどんな色で表示するかを決めるスクリプト
uGUI