メソッドを書く
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)のように書きます。
チャレンジ
中級PlaceLampにパラメーターを渡して、それぞれのランプが別々の場所に立つようにしましょう。
- メソッドの最初の行を
void PlaceLamp(float x)に変更し、位置をnew Vector3(x, 1, 0)に変更します。 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プレイグラウンド