こんな感じで、
GameObject goal = Instantiate(goalPrefab, goalPosition, Quaternion.identity);
Instantiate関数を変数に代入するって
どういうこと?
インスタンス化はちゃんとされてるの?
とふと疑問におもったのでメモ
結論
変数に代入しようが、インスタンス化はされる。
生成されたオブジェクトへの参照を保存するために
変数に代入している。
質疑応答
Q. なんのために生成したオブジェクトの参照を保存するの?
A. オブジェクトにさらに操作・調整を加えたいときに使うため。
たとえば、
生成したオブジェクトの高さを生成時に調整したい、
と思ったらこのようなコードが必要になる。
// ゴールポールの高さを設定
goal.transform.localScale = new Vector2(goal.transform.localScale.x, goalHeight);
ここでは生成したオブジェクトを格納した変数に対して
プロパティを作用させている。
変数に代入しないとこの操作は行えない。
==
コメント歓迎です。
ご指摘をいただけるとうれしいです!