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

質問編集履歴

2

改行整形

2021/10/09 16:08

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -33,7 +33,8 @@
33
33
 
34
34
  以下のコードを試す前までは、
35
35
  **staticな変数は、ゲーム全体に変数が保存されることになるので、シーンが遷移してゲームオブジェクトが破棄されても
36
+ 変数は生き残るようになっている**と認識していたため、
36
- 変数は生き残るようになっている**と認識していたため、シーンをリロードした際に残っているinstanceがnullでないので、
37
+ シーンをリロードした際に残っているinstanceがnullでないので、
37
38
  そのために、「if (instance == null)」の条件判定が必要と思っていました。
38
39
  しかし、以下のコードを試してみると、
39
40
  ```C#
@@ -101,5 +102,6 @@
101
102
  Instantiateメソッド等でそのゲームオブジェクトを複数生成した場合に、
102
103
  「if (instance == null)」の判定が生かされるようにも思えますが、
103
104
  そもそもシングルトンみたいなコードを複数のゲームオブジェクトにアタッチしたり、
104
- Instantiateメソッド等で複製すること自体があまりないように思えるので(あったとしても開発者側(人間側)の凡ミスのはず)、
105
+ Instantiateメソッド等で複製すること自体があまりないように思えるので
106
+ (あったとしても開発者側(人間側)の凡ミスのはず)、
105
107
  そのチェックのために行っているnull判定ではないように思えてしまいます。

1

改行整形

2021/10/09 16:08

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -96,9 +96,10 @@
96
96
  このことから、**staticな変数がシーンを跨ぐと生き残るのか、破棄されるのかよくわからない**状態です。
97
97
  また、質問の前提に書きましたが、このシングルトンみたいなコードで「if (instance == null)」と判定する理由はなんでしょうか?
98
98
  上記検証でわからなくなってしまったことに加えて、他に考えられることとしては、
99
- 上記シングルトンみたいなコードを複数のゲームオブジェクトにアタッチしたり、1つだけのゲームオブジェクトにアタッチした場合でも、
99
+ 上記シングルトンみたいなコードを複数のゲームオブジェクトにアタッチしたり、
100
+ 1つだけのゲームオブジェクトにアタッチした場合でも、
100
101
  Instantiateメソッド等でそのゲームオブジェクトを複数生成した場合に、
101
102
  「if (instance == null)」の判定が生かされるようにも思えますが、
102
- そもそもシングルトンみたいなコードを複数のゲームオブジェクトにアタッチしたり、Instantiateメソッド等で複製すること自体が
103
+ そもそもシングルトンみたいなコードを複数のゲームオブジェクトにアタッチしたり、
103
- あまりないように思えるので(あったとしても開発者側(人間側)の凡ミスのはず)、
104
+ Instantiateメソッド等で複製すること自体があまりないように思えるので(あったとしても開発者側(人間側)の凡ミスのはず)、
104
105
  そのチェックのために行っているnull判定ではないように思えてしまいます。