質問するログイン新規登録

回答編集履歴

1

補足を追記

2018/01/21 21:32

投稿

Bongo
Bongo

スコア10816

answer CHANGED
@@ -3,4 +3,6 @@
3
3
  `creatingButton`は引数`value`に応じて各種ボタンプレハブを切り替えて格納するために用意したもののようですが、それには変数だけがあれば充分であり、宣言時にわざわざ空のゲームオブジェクトを作って入れてやる必要はないはずです(この時作られたゲームオブジェクトがずっと生き残って、ヒエラルキーを圧迫していると考えられます)。
4
4
 
5
5
  上記部分を`GameObject creatingButton;`という風に、宣言だけして初期化しないようにしてはどうでしょう。
6
- あるいは、`GameObject creatingButton = null;`にして`null`で初期化するというのもありかと思います。
6
+ あるいは、`GameObject creatingButton = null;`にして`null`で初期化するというのもありかと思います。最初の方法では、その後の`switch`に`default`節を設けて、`value`がどんな値であっても`creatingButton`に必ず何かしらの値が代入されるようにしないと、さらにその後の`GameObject createdButton= Instantiate(creatingButton)as GameObject;`の部分で「Use of unassigned local variable `creatingButton'」などとエラーメッセージが出てしまうでしょう。
7
+
8
+ ※もう一つ、おそらく実際のコードでは大丈夫でしょうが(単なる書き写し間違いかと思いますが)、ご提示いただいたコードでは`[SerializeField]`が`[SerializedField]`になってしまっているようです。