[Unity初心者日記] カメラを動かす

ヨメレバCSS
オリジナルCSS

前回:[Unity初心者日記] オブジェクトを配置してみる

適当に配置したブロックのなかを、自由に移動できるようにしてみます。

スポンサーリンク
GoogleAdSence レクタングル(大)

移動用オブジェクト(Player)の配置

まずはPlayerとなるキューブを作ります。

ちょっと縦長にして、色を青くして。

方向がわかるように、Z軸方向にクチバシをつけました。

Unity_1_8_player

これをカメラから見て画面の真ん中に配置します。

Unity_1_8_player2

このPlayerを、ひとまずラジコン方式で操作してみます。

上下で前後移動、左右で回転というそれです。

このほうが移動と回転がわかりやすいかなと思いますので。

Scripts/PlayerController.csを作成して、Playerに追加。

Update()に次のように記述します。

// Update is called once per frame
void Update () {
	// ゲームパッドからの入力

	// 前後に移動
	gameObject.transform.Translate(0, 0, Input.GetAxis("Vertical") * 0.1f);

	// 左右に回転
	gameObject.transform.Rotate(0, Input.GetAxis("Horizontal"), 0);
}

今回の移動はpositionを書き換えるのではなく、Translateを使用して移動距離を加算しています。Verticalに0.1fを掛けているのは、そのままの値だと大きすぎたから。

positionにVector3を入れる方法だと、x, y, zそれぞれに移動量を計算してやらないといけないので、Translateで移動量だけ指定するのが簡単。

また前後の移動はオブジェクトの回転状態に依存して計算されるため、ローカル座標で決定する必要があります。これもTranslateだとデフォルトでローカル座標で計算してくれます。

回転も同様にローカル軸で。

これで実行すると、Playerが移動できるようになります。

Unity_1_8_game

移動できる、押せる。

Unity_1_8_game2

落ちる…

カメラの移動

ここまでだとカメラが固定されていますが、これをPlayerの動きに合わせてみたいと思います。

まず現在のカメラであるMain Cameraを、

Unity_1_8_camera

Playerの下に移動します。

Unity_1_8_camera2

これだけで、カメラはPlayerの動きについていくようになります。

親オブジェクト(Player)のローカル座標に入っているためです。

Unity_1_8_camera3

落ちているのか浮いているのかわからない感覚に襲われる。

ちょっとカメラの位置を調整して、Player視点になるようにしてみます。

Unity_1_8_camera4

位置調整は他のオブジェクトと同じように、Sceneビューで移動ツールを使って行います。

そのとき右下にカメラの描画内容が表示されるので、それを参考にしながら。

Unity_1_8_camera5

だいたいこのあたりで。

それで実行すると、Player目線で動くのがわかります。

Unity_1_8_camera6

飛んでいるのも落ちているのも同じことだわ…

スポンサーリンク
GoogleAdSence レクタングル(大)

シェアする

スポンサーリンク
GoogleAdSence レクタングル(大)