万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

Unity C# Vecror3のデフォルト値

    public void Hoge (Vector3 pos = Vector3.zero)
    {
    }

のように出来ない。

しかし、new Vector3でもできない

    public void Hoge (Vector3 pos = new Vector3 (0, 0, 0))
    {
    }

const使うように言われるが、

    private const ZERO = new Vector3 (0, 0, 0);
    public void Hoge (Vector3 pos = ZERO)
    {
    }

のようにZEROの定数でも不可能。 よくわからない。

null許容型でnullをデフォルト値にさせて対応した。

    public void Hoge (Vector3? pos = null) // ここ需要
    {
        Vector3 position = pos ?? Vector3.zero; // ここ需要
        position = new Vector3 ();
        GameObject go = Instantiate (prefab) as GameObject;
        go.transform.position = position;
    }