はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】可変長引数についてかるくまとめてみた

はじめに

今回は可変長引数をつかったメソッドについての記事になります。

可変長引数と聞いてもやや分かりづらいかもしれないですが、単に複数の引数を受け取るがその数を限定しないものを表します。

なぜか好き勝手に引数を指定できると思うとワクワクしませんか?
自由はやっぱり素晴らしい!

使い方

可変長引数を受け取るメソッドを定義するにはparamsを使います。

using UnityEngine;

public class Hoge: MonoBehaviour
{
    [SerializeField] private GameObject _gameObject1;
    [SerializeField] private GameObject _gameObject2;
    [SerializeField] private GameObject _gameObject3;

    private void Start()
    {
        TurnOffActives(_gameObject1,_gameObject2,_gameObject3);
    }

    private void TurnOffActives(params GameObject[] gameObjects)
    {
        foreach(GameObject gameObject in gameObjects)
        {
            gameObject.SetActive(false);
        }
    }
}

この例ではparamを付けることで任意のゲームオブジェクトを指定することができます。

よくある例としてオーバーロードでいくつもメソッドを定義することがありますが、可変長引数を使える時は使うべきです。

さいごに

paramを用いることでかなりコードが見やすくなるので、是非使えるときは使うように心がけましょう!