しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Unityの公式マニュアルを読んでいく - その4

この記事ではUnityのマニュアルを1から読んだ感想とか発見を書いてみようと思います。

docs.unity3d.com

読んだ所

今回は以下のページを読みました。

Unity - マニュアル: 検索
Unity - マニュアル: プレハブ
Unity - マニュアル: ライト
Unity - マニュアル: カメラ
Unity - マニュアル: ゲームプレイの作成
Unity - マニュアル: 実行時のプレハブのインスタンス化
Unity - マニュアル: 入力
Unity - マニュアル: 一般的なゲーム入力
Unity - マニュアル: モバイル端末の入力
Unity - マニュアル: モバイルキーボード

学んだこと

Prefabとは

マニュアルと下記事を参考にしました。
プレハブ化とはHierarchyのオブジェクトをProjectビューに移動する事で作れます。
プレハブはスクリプトインスタンスを複製できるので大変便利です。

ゲーム開発初心者のためのUnity入門(12):UnityでGameObjectをPrefab化し、スクリプトで動的にインスタンス生成するには (1/6) - @IT

下のようなコードで複製できます。

function Start () {
    for (var y = 0; y < 5; y++) {
        for (var x = 0; x < 5; x++) {
            var cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            cube.AddComponent.<Rigidbody>();
            cube.transform.position = Vector3 (x, y, 0);
        }
    }
}

ユーザー入力の取得

ユーザー入力はInputクラスを使うと取得できます。
以下のようにすればタッチ開始を取得できます。

var particle : GameObject;
function Update () {
    for (var touch : Touch in Input.touches) {
        if (touch.phase == TouchPhase.Began) {
            // Construct a ray from the current touch coordinates
            var ray = Camera.main.ScreenPointToRay (touch.position);
            if (Physics.Raycast (ray)) {
                // Create a particle if hit
                Instantiate (particle, transform.position, transform.rotation);
            }
        }
    }
}

その他加速度センサーのデータを取得する事も可能です。

キーボードを開きたい場合はTouchScreenKeyboardクラスを使います。