はじめに
「Roll-a-Ball」とは、Unity Learnの1つで、 球を自分で転がしてアイテムを集めて得点を稼ぐゲームです。
今回は、 「Roll-a-Ball」 のプレイヤーであるボールの動作です。
Unity Learnでは、こちらのゲームのチュートリアルが公開されています。
チュートリアル(Roll-a-ball)
こちらのチュートリアルに沿って、ゲームの作成を行っていきます。
前回のプレイヤーと地面の作成の環境設定は、Roll-a-ball2(プレイヤー作成)をごらんください。
「Roll-a-ball」のチュートリアルについては Roll-a-ballの導入編をご覧ください。
UnityLearnについてはこちらをご覧ください。

Moving the Player
ボールのオブジェクト「Player」を選択します。
画面上の「Component」-「Physics」-「Rigidbody」をクリックします。

これで、右側の「Inspecter」にRigidbodyのタブが追加されました。

次に、ボールに動作を付けます。
まずはスクリプトを格納するためのフォルダを作成します。
フォルダの作成方法は、以前と同様の手順です。
左下のProjectの中の「Create」-「Folder」で新規に作成します。
フォルダの名前を「Script」に変更します。
次に、スクリプトの作成をします。
Player(ボール)の「Inspecter」の一番下の「Add Compornent」をクリックします。

「Component」-「New Script」をクリックします。

Nameに「PlayerController」を入力して、「Create and Add」をクリックします。

これで、スクリプトが作成されました。
この作成されたスクリプトを先ほどのフォルダ「Script」にドラッグしていれます。

これで、「Script」フォルダの中に「PlayerController」が入りました。

それでは、作成したスクリプトにボールの動作を記述します。まずは、スクリプトをダブルクリックするか、右クリックで「Open」をクリックして、スクリプトを開きます。
スクリプトはC#で記述していきます。
開く際に、任意でエディタを選択できるため、使いやすいエディタの使用をおすすめします。
私は、エディタにデバック等が行いやすいため、Visual Studioにしています。Visual Studioで記述する方法はこちらを参照ください。

以下の様にコードを記述します。
コードの内容としては、十字キーでボールを動かすものとボールのスピードについて記述しています。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private Rigidbody rb;
public float speed; //publicにすることで、UnityのUIで変更が可能
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);
}
}
これで、ボールが動くようになりました。
実際に、再生ボタンを押して、実行させることができます。
また、スクリプトで設定したSpeedは、右下のSpeedの欄を変更することで、ボールのスピードを変更できます。

おわりに
今回は、スクリプトを作成しました。
スクリプトにボールを動作できるように記述し、ボールを動かせるようにしました。
次回も引き続き行っていきます。
Roll a Ball4
コメント