見出し画像

2-5 スクリプトの基礎知識

今回はUnityでの基本的なスクリプティングについて学んでいきます。
スクリプトを使うことで、ゲームオブジェクトに動きや挙動を追加することができます。


スクリプトの作成方法

ヒエラルキーで任意のオブジェクトを選択

今回はCubeを作成してそこにスクリプトを追加してみます。

インスペクターパネルで「Add Component」をクリック

スクリプトの名前を入力し「New Script」から「Create and Add」をクリック

今回は「CubeController」という名前にしましょう。
クラス名は大文字で始め、キャメルケースを使用します。
(例: CubeController)

存在しないコンポーネント名を入力すると、New script が表示されます

ファイルの作成とコンポーネントの追加が完了

Assetsにスクリプトファイルが追加されます
同時にCubeにコンポーネントが追加されます

スクリプトファイルをダブルクリックするとエディタが起動します。

スクリプトの基本構造

スクリプトを開くと、以下のようなテンプレートが表示されます。

using UnityEngine;

public class CubeController : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
    }

    // Update is called once per frame
    void Update()
    {
    }
}

StartメソッドとUpdateメソッドの役割

Startメソッド: スクリプトが初めて実行されたときに一度だけ呼ばれます。
例えば初期化に関する処理を書きます。

Updateメソッド: 1フレームごとに呼ばれます。
ゲームの主なロジックをここに記述します。

シーン再生後の流れ

スクリプト実行

Start(1度だけ)

Update(毎フレーム)

このサイクルがシーンに存在する全てのオブジェクトに対して行われます。

1フレームとは?

「1フレーム」とは、ゲームが画面を一回更新する周期を意味します。
例えば、秒間60フレームは、1秒間に60回Update関数が呼ばれる
ということです。
Update関数に書いた処理は毎フレーム実行され
ゲームの動的なロジックやキャラクターの動き、入力の受付など
リアルタイムで更新が必要な処理を行います。

基本的なスクリプトの例

Updateにコードを書いてオブジェクトを操作してみます。
今回はコードをコピペして動きだけを確認してみましょう。
(スクリプトについての細かい説明はC#基礎知識で行います)

毎フレームオブジェクトを移動させるスクリプトの例:

void Update()
{
    transform.Translate(Vector3.forward * Time.deltaTime);
}

キーボード入力でオブジェクトを移動させるスクリプトの例:

void Update()
{
    if (Input.GetKey(KeyCode.W))
    {
        transform.Translate(Vector3.forward * Time.deltaTime);
    }
}

ゲームを再生

コンソールになにも表示されなければゲームを再生可能です。
ゲームを再生するとオブジェクトにアタッチされたスクリプトが実行されます。

Cubeが前に向かって移動します

ゲームオブジェクトが移動する事を確認してみましょう。

スクリプトを別のオブジェクトに追加する

新しいCubeを作って、CubeControllerスクリプトをドラッグ&ドロップで
追加してみましょう。

CubeControllerをつけている時とつけていない時を見比べてみましょう!

まとめ

スクリプトを使用して、ゲームオブジェクトに具体的な動きや挙動を追加する方法を実際に試しました。
StartメソッドとUpdateメソッドの役割を理解し、それぞれの使用場面とタイミングについて学びました。
次はログの表示方法を学習しましょう。

この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?