Menu
CoddyTech

メソッドを書く

CoddyのUnityジャーニー「Unityスクリプトの基礎」セクションの一部。レッスン 39/85。

しばらくメソッドを呼び出してきましたね。Debug.Log、PlaceCrate、そしてUnityはStart()やUpdate()を呼び出します。自分でメソッドを書くのも同じです。

void Shout(string word)
{
    Debug.Log(word + "!");
}

voidは、そのメソッドが処理を行い、何も返さないことを示します。Shoutはその名前です。かっこの中にあるのはパラメーターです。呼び出し元が値を入れる変数です。Shout("Hello");は、wordに"Hello"が入った状態でメソッドを実行し、Shout("Run");は"Run"を使ってもう一度実行します。

パラメーターがないメソッドにも、空のかっこが必要です。void Jump()と定義し、Jump();と呼び出します。メソッドには複数のパラメーターを渡すこともでき、カンマで区切ります。void PlaceTile(int column, int row)のように書きます。

challenge icon

チャレンジ

中級

PlaceLampにパラメーターを渡して、それぞれのランプが別々の場所に立つようにしましょう。

  1. メソッドの最初の行をvoid PlaceLamp(float x)に変更し、位置をnew Vector3(x, 1, 0)に変更します。
  2. Start()内の呼び出しをPlaceLamp(-3);、PlaceLamp(0);、PlaceLamp(3);に変更します。

「プレイ」を押すと、3つのランプが3ずつ離れて一列に並びます。その後、「確認」を押します。

自分で試してみよう

using UnityEngine;

public class LampRow : MonoBehaviour
{
    void Start()
    {
        PlaceLamp();
        PlaceLamp();
        PlaceLamp();
    }

    void PlaceLamp()
    {
        GameObject lamp = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        lamp.name = "Lamp";
        lamp.transform.position = new Vector3(0, 1, 0);
        lamp.transform.localScale = new Vector3(0.3f, 1, 0.3f);
        lamp.GetComponent<Renderer>().material.color = new Color(0.3f, 0.3f, 0.35f);
    }
}

Unityスクリプトの基礎のすべてのレッスン

自分で練習してみよう: Unityプレイグラウンド