Unity初心者講座:スクリプトを使ってみる

2021年10月8日

Unityでの一通りのオペレーションに慣れてきたと思いますが、ここからはスクリプトを使ってもっとプログラムらしいことを覚えていきましょう。

スクリプトとは?

スクリプトと一言で言っても、はじめはピンと来ないかと思います。一体何を指してスクリプトというのかを一つずつ覚えましょう

オブジェクトに命令を出す指示書

簡単に説明すると、スクリプトというのは指示書です。箱のオブジェクトに「右に動いて下さい!」とか、「大きくなって下さい」とか「触られたら消えて下さい」とか、そういった指示が書かれています。そういった指示書は、ただプログラムを書いただけでは動作しません。オブジェクトにくっつけることで初めて機能します。

プログラムの言語

スクリプトというのはプログラムのことです。プログラムというのには言語があります。Unityはかつていろいろな言語で処理できるようになっていましたが、今から勉強を始めるのであれば、間違いなくC#(シーシャープ)を使って下さい。Unityで他の言語を使っているところは殆どないと持っていただいて構いません。C#を使ってるかどうかの確認すら必要ないと思っていいぐらいです。

何で作る?

テキストエディター系であればなんでも大丈夫です。UnityをインストールしているとMonoDevelopがついてくると思います。その他だとXamarinやMicrosoftVisualStudioなど便利な補完機能のついたエディターなどもおすすめです。

こだわりが出てきたら、好きなエディターに乗り換えるという感じで気軽に構えていれば良いと思います。

スクリプトを実際に触ってみる

では、実際にスクリプトを用意して見ましょう。実行時に動くところも簡単に確認してみたいと思います。

プロジェクトにスクリプトを追加

スクリプトファイルを追加する場合、プロジェクトウィンドウの配置したい場所を右クリックしてCreate>C# Scriptを選択します

今回はAssetsフォルダの直下に配置をします。
選択をすると、ファイル名を入力することが出来ます。ここではTestScriptとして下さい。

ファイル名は、いつでも変更可能ではありますが、可能な限り追加時に利用するファイル名を入力して下さい。

ファイル追加時にファイル名を指定する必要性

ファイル追加時は、ファイル名をもとにクラスというものが自動で作成されます。クラスとファイル名は同じでないと正しく動作しないことがありますので、追加するときに利用する名前を決めておくようにして下さい。

ファイルを開いて編集

ファイルを追加したら、プロジェクトウィンドウにある追加済みのファイルをダブルクリックして下さい。あらかじめ設定してあるエディターで開かれると思います。

自動で作られた内容は下記のようになっていますでしょうか?

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TestScript : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        
    }
    // Update is called once per frame
    void Update()
    {
        
    }
}

今回覚えるのは3つだけで良いです。

スクリプト自体は20行弱ありますが、全て覚える必要はありません。今回は

    void Start()
    {
        
    }

この部分だけで大丈夫です。これはUnityのStart関数と呼ばれるもので、ゲームが起動すると一番最初に呼ばれるところです。厳密にはもう少し違うのですが、現在はそういう覚え方で大丈夫です。(なんか違うのは、ライフサイクルの勉強をするときに合わせて覚えるので大丈夫です。)

では、Start関数を次のように変更してみて下さい

    void Start()
    {
			Debug.Log("スタート関数");
    }

Debug.Logというのは、UnityエディターのConsoleウィンドウに文字を表示させることができる処理です。
ダブルクォーテーション(“)で閉じることで、お好みの文字列を入力することが出来ます。"スタート関数"としていますが、好きな文字で試して頂いても問題ありません。

この編集をしたら、Ctrl+Sや上書き保存などをして、Unityエディタに戻って下さい。エラーが出ていなければ、編集成功です。

エラーが出た場合は?

エラーが出ると、コンソールウィンドウでエラー内容を確認出来ます。画面下にエラー表示されているのを確認したら、コンソールウィンドウを表示して確認してみましょう

コンソールウィンドウでは、現在のエラーの数やどの行でエラーが起こっているか、そもそもエラー内容は何?まで確認することが出来ます。

先程追加した関数の最後のセミコロンを抜いて保存した場合、イラストのようなエラーが発生します。
コンソールウィンドウは、プログラムをガリガリ書いている最中は、頻繁に目にするので、慣れてきたらずっと表示しているようにレイアウトを変更しても良いかもしれません。

実際に動かしてみる

エラーが取れたら実際に動かしてみましょう。動かすには、オブジェクトにスクリプトを引っ付ける必要があるのですが、方法はいくつかあります。今回はファイル名を覚えていると、楽に追加できる方法で行いたいと思います。

オブジェクトにスクリプトをくっつける

まずは、シーン内にCubeを用意したら、ヒエラルキーでCubeを選択他状態にしてください。(前回までのプロジェクトをそのまま使っている場合はそのままでOKです)この時、インスペクターにCubeの情報が表示されているのを確認します。

インスペクターに表示されたら、一番下に[Add Component]というボタンがあるので押して下さい。
表示されたら、テキスト入力ができるので、そこに「testscript」と入力します。

絞り込みができると、先程追加したTestScriptが表示されるので、選択をして下さい。
するとインスペクターの一番下にTestScriptが追加されるのが確認出来ます。

スクリプトをオブジェクトやインスペクター上にドラッグアンドドロップしても追加可能なのですが、名指しで追加できる方法は使い所が多いので、ぜひマスターして下さい。

動かしてみる、動作確認

スクリプトをつけるところまで出来たら、実際に動かして、確認をしてみましょう。
実行前に、コンソールウィンドウを表示している状態にしてください。
準備が出来たら、実行をしてみて下さい。

コンソールウィンドウに、指定した文字が表示されていると成功です。

これは、Start関数がゲーム実行時(正確にはくっついているオブジェクトが起動するタイミング)に呼ばれるため、コンソールにDebugLogが表示されたというわけです。

まとめ

今回は実際にスクリプトを追加したり、編集して実行するところまで行いました。だいぶプログラマーっぽい感じがしますね。デバッグログを使いこなせるかどうかは、プログラムをチェックする上で非常に重要です。しっかり覚えられるようにいろいろと試してみて下さい。

コンソールウィンドウは、かなりの頻度で使うので、自分の使い勝手に合わせてずっと表示されている状態にしておくと便利です。慣れてきたらレイアウトの配置換えもしてみて下さい。

次回からは、少し基本となるプログラムの勉強をしていきたいと思います。基礎メインになりますが、はじめが肝心ですので、しっかり勉強しましょうね!