解説

文字列の表示

前回は何もしないコンポーネントを1行で作成しました。この記事では、コンポーネントの中身を記述していきます。メソッドの書き方を説明した後、Startメソッドを用いて文字列をコンソールビューに表示する方法を解説します。

Unityプログラミング講座一覧はこちら

Unityプログラミング講座
ゲームエンジンUnityを使ってゲーム制作を始めようと思っている人へ向けた解説記事です。初心者がUnityをインストールするところから始めてゲームを制作するのに必要な知識をできる限りステップバイステップでまとめるつもりです。

ここがポイント

  • メソッドの書き方を理解する。
  • MonoBehaviourを継承したクラスはStartメソッドが最初に1度呼ばれる。
  • Debug.Logを用いて文字列を表示する。

メソッド(関数)の書き方

メソッドはクラス内に記述するメンバの1つです。メソッドではコンピュータに行わせる処理を記述します。

メソッドの書き方は次の通りです。

戻り値の型名 メソッド名(引数) {処理}

戻り値の型名は、メソッドが返す計算結果(戻り値)のデータの種類を表します。例えば、結果を整数で返す場合にはintを用います。何も値を返さない場合にはvoidを用います。

メソッド名は、メソッドの名前です。命名規則はクラスと同じです。

引数は、メソッドに渡すデータです。計算に必要な値を渡すときに使います。何もデータを渡さない場合には()のみ記述します。

処理に、計算などの処理を書きます。メソッドの中身を記述する場所になります。

特別なStartメソッド

MonoBehaviourを継承したクラスでは特別な意味をもつメソッドがいくつか存在します。(「あらかじめ組み込まれた」という意味でビルトインメソッドと呼ばれます。)そのうちの1つにStartメソッドがあります。このメソッドは開始時に1度だけ自動的に呼び出されます。

Startメソッドは戻り値なし、引数なしのメソッドです。したがって、戻り値の型はvoid、引数はないので()のみになります。何もしないStartメソッドは以下のように記述します。

void Start() {}

メソッドはクラスのメンバの1つですので、クラスの中に記述しましょう。

プログラムのフォーマット

C#の記述形式

プログラミング言語で書かれたコードの中で、これ以上分解できない意味のまとまりをトークンといいます。英文における単語のようなものです。

C#ではトークンは(){}:.などの記号やclassなどのキーワード、クラス名やメソッド名などになります。トークンは分離して書かれる必要があります。

例えば、以下のようにキーワードvoidとメソッド名をつなげるとエラーになります。

voidStart() {}

逆にトークンが分離できていれば、改行やタブ、スペースを好きなだけ使えます。極端な話、以下のコードでもエラーになりません。

              class
       Test
    :
                     UnityEngine
  .
      MonoBehaviour 
                {
}

インデントを使って見やすくする

さすがに、自由に書きすぎると読みにくいコードになってしまうので、ある程度書き方があります。

階層を表現するために文の頭にスペースやタブを入れて見やすくする慣習があります。これをインデントといいます。

クラスのメンバとしてStartメソッドを書く場合、インデントするとこんな感じになります。

class Test : UnityEngine.MonoBehaviour
{
    void Start()
    {
    }
}

インデントはプログラミングにおいて必須といってもいいです。必ず習慣づけましょう。

コメントを入れてわかりやすくする

プログラムにはコメントを入れる機能があります。コメントはプログラムの動作には影響がありません。複雑なプログラムになると、斜め読みしただけではその内容がわかりません。コメントは説明を入れるためのものです。

1行の場合は//を使います。複数行にわたる場合には/**/で挟みます。

class Test : UnityEngine.MonoBehaviour
{
    // これはコメントです。
    void Start()
    {
        /*
            複数行のコメントです。
            ここにメソッドの中身を書きます。 
        */
    }
}

文字列の表示

これから文字列を表示する方法を解説します。これはプログラミングをする上で大切なものになります。プログラムでいろいろな処理をさせても、その結果を表示できなければ意味がないからです。

Debug.Logメソッド

C#で文字列を表示するためのメソッドはいろいろあるのですが、UnityではクラスDebugLogメソッドを使用することが多いです。

例えば、Hello Worldと表示させたい場合は、文字列"Hello World"を引数としてDebug.Logメソッドを実行します。このメソッドは名前空間UnityEngineの中にあるので、以下のように書きます。

UnityEngine.Debug.Log("Hello World");

※C#では文の終わりにセミコロン;を書きます。英語でのピリオド、日本語での句点と同じようなものです。

処理を書く場所

処理を書く場所はメソッドの中になります。Startメソッドの中に書けば開始時に呼ばれます。以下のコンポーネントを作成して適当なゲームオブジェクトにアタッチしてください。

class Test : UnityEngine.MonoBehaviour
{
    void Start()
    {
        UnityEngine.Debug.Log("Hello World");
    }
}

スクリプトが書けたらCtrl+Sで変更を保存した後、ゲームを再生してください。コンソール(Console)にHello Worldと表示されていたら終了です。

Hello Worldの箇所を別の文字列に変えれば、いろいろ出力できます。

前にも述べたように、コンポーネントとスクリプトのファイル名は同じにしてください。

usingを用いた名前空間の指定

MonoBehaviourDebug.Logはどちらも名前空間UnityEngineに属しています。何度もUnityEngineと書くのは大変です。usingを用いて名前空間を指定することで省略することができます。

using UnityEngine;
class Test : MonoBehaviour
{
    void Start()
    {
        Debug.Log("Hello World");
    }
}

Unityでスクリプトを作成すると先頭にusingで始まる行が数行続いていますが、これはよく使う名前空間をあらかじめ記入しているというわけです。

まとめ

この記事ではStartメソッドにDebug.Logを書くことで文字列の表示を行いました。文字列を表示するだけでは不十分ですので、次回は数値を取り扱って計算結果を出力してみましょう。

Unityプログラミング講座一覧はこちら

Unityプログラミング講座
ゲームエンジンUnityを使ってゲーム制作を始めようと思っている人へ向けた解説記事です。初心者がUnityをインストールするところから始めてゲームを制作するのに必要な知識をできる限りステップバイステップでまとめるつもりです。
タイトルとURLをコピーしました