この記事の対象者
- Unity入門したい人
- 最初の一歩が踏み出せない人
OSとか環境とか
- Windows 10 Pro
- macOS Mojave
- Unity 2019.2.8f1
- Rider 2019.2.2
補足
- 公式動画にて利用しているのはMacなので、Windowsユーザーはある程度脳内変換して見る事
- 筆者はWindows、Macの両方の環境で確認。Ubuntuとかでは検証してない。
- 基本Unityは英語メニューで利用
- 間違いがあったらツッコミ大歓迎
公式のリンク
プレイヤーの移動
追加したSphereがキーボードで動く様に調整する
移動時の条件
・ゲームエリア全体を転がる
・壁にぶつかる
・常に接地している(宙に浮かない)
・アイテムに接触したらアイテムを取得する
→物理演算が必要
Rigidbodyコンポーネントをアタッチする必要がある
アタッチする方法
- アタッチする対象のゲームオブジェクトを選択(今回はPlayerゲームオブジェクト)
- Component>Physics>Rigidbodyを選択
上記のようにアタッチされる
アタッチした要素は並び替えが可能となるので、要素が増えたりしたら並び替え等でキレイキレイする
キーボードの入力について
動きを制御するスクリプトをアタッチして実現する
スクリプトを格納するフォルダ「Scripts」を作成し、その中にスクリプトを格納するのが良い
追加方法は何個かあるのだが、今回は「Add Component」から追加する方法が有効
メニューよりNew Scriptという項目から追加
→スクリプトを別で用意しても良いが、そのスクリプトをアタッチする手間が省けるので楽
PlayerControllerという名前でスクリプトを追加
これでこのPlayerオブジェクトにスクリプトがアタッチされる
スクリプトの記述
基本スクリプトファイルをダブルクリックして紐付いたエディタが起動する
※筆者はRiderを使ってコーディングするので、Riderが起動するが、こだわりがなければVisualStudio2019 Communityあたりが起動する
PlayerController.csの記述方法等については動画参照の事ですが何点か補足
- 動画でも説明されているが、**公式のドキュメントを読むのは基本
Unityに限った事ではないので、なんか文字沢山書いてあるなーと思わないで
公式のドキュメントはちゃんと読みましょう!
何なら公式ドキュメントの読み方も超丁寧に動画にしてくれている
Just Do It!
- ライフサイクル
https://docs.unity3d.com/ja/2019.1/Manual/ExecutionOrder.html
を参照すれば良さそう
出来上がったものがこちら!
using UnityEngine;
public class PlayerController : MonoBehaviour
{
public float speed;
public Rigidbody rb;
// See also:https://docs.unity3d.com/ja/2019.1/Manual/ExecutionOrder.html
private void Start()
{
rb = GetComponent<Rigidbody>();
}
private void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal,0.0f,moveVertical);
rb.AddForce(movement * speed);
}
}
Publicで定義した変数はUnityのエディタ内で直接値を編集出来るのが特徴的なので覚えておく事
これでボールの制御が出来るようになるので大勝利