LemonteaのUnity部屋

UnityとかC#のおはなしです~

初めてのUnity(3)プレイヤーとカメラの移動

こんにちは。レモンティーです。
今回も前回↓の続きを作っていきましょう!

sawalemounity.hatenablog.com


いよいよプレイヤーを作るという話でしたね。
それではさっそく、
プレイヤーとなる球をCreateしましょう。
Create >3Dobject>sphereです。

f:id:sawalemontea:20170730163115p:plain

名前をPlayerに変えておきます。

プレイヤーにもRigidbodyをつけましょう
AddComponent>Physics>RigidBodyです。

f:id:sawalemontea:20170730163132p:plain

こんな感じですね。
次は、プレイヤーを動かすスクリプトをつくります。
が、ここで注意です。
Create>C#Script なのですが、今回押すのは
上の画像で赤丸がついているほうのCreateです。
いままでのは青で×がついてるほうでしたね。
今後は特に書きませんが初回なので一応。

スクリプトの名前はPlayerMoovとしておきましょう。

f:id:sawalemontea:20170730163148p:plain

さて、こんな感じになりましたね。

ちなみに
オブジェクトの名前って、基本はわかればなんでもいいんですが、
スクリプトだけは、名前と、↑の赤線のところが一致してないと
エラーになります。けっこう面倒なので気をつけてください。

それではPlayerMoovをダブルクリックして開きましょう。

f:id:sawalemontea:20170730163200p:plain

こんな画面がでます
今回は初めてなのでざっとUnityの操作を覚えるのを優先して、
スクリプトはコピペで済ませましょう

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerMoov : MonoBehaviour {
	
	// Update is called once per frame
	void Update () {
        float x = Input.GetAxis("Horizontal");
        float z = Input.GetAxis("Vertical");
        Vector3 Direction = new Vector3(x, 0, z)*0.15f;
        GetComponent<Rigidbody>().AddForce(Direction, ForceMode.VelocityChange);
        Direction = Vector3.zero;
	}
}

書いただけでは使えませんので、
PlayerMoovをドラッグして、Playerの上にドロップしてください。
↓こんな感じに

youtu.be


PlayerのInspectorにPlayerMoovが追加されたはずです。
この作業を「アタッチする」と言います。

このままだとそうさしにくいので、
PlayerのRigidBodyを弄りましょう。
Freeze Rotationを全てチェックします。
これで物理演算での回転が無効化されました

f:id:sawalemontea:20170730163223p:plain

これで実行してみてください。
キーボードの
矢印キーまたはASDWで操作できます。
コロコロしてかわいらしいですよね笑

…しかし、カメラがずっと気のきかない位置に
固定されているので、いささか動かしにくいですね。

そこで、カメラがPlayerを追いかけるようにします。

そのために、カメラを良い感じの位置に動かしてから、
Playerの子オブジェクトにします。

f:id:sawalemontea:20170730163236p:plain

まずは赤丸のGame画面を見ながらMain Cameraを動かします。
この画面が、実際のプレイ中の画面で、カメラに写っている景色です。
Scene画面は、あくまで開発中だけの画面です。

↓みたいな感じに調節しましょう。

f:id:sawalemontea:20170730163250p:plain

気に入った見え方になったら、
次にMain CameraをドラッグしてPlayerの上にドロップします。

f:id:sawalemontea:20170730163304p:plain

こんな風になりました。
▽を押すとしまったり出したりできますね。
これで、カメラがプレイヤーの子オブジェクトになりました。

子は、親オブジェクトを勝手に同じ早さで追従します。
便利な機能ですね。

それでは実行して、Game画面を見ながら操作してみましょう。

どうでしょう。自由に動かせますや
いよいよゲームらしくなってきましたね!

今回はここまでです。

Next

sawalemounity.hatenablog.com

関連
今回使用したスクリプト知識
sawalemounity.hatenablog.com