回答編集履歴
2
汎用的に変更
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
まず、SingletonMonoBehaviorは標準ライブラリに無いため、どのSingletonMonoBehavior実装であるかがわからないと正確なところがわかりません。後は
|
1
|
+
まず、SingletonMonoBehaviorは標準ライブラリに無いため、どのSingletonMonoBehavior実装であるかがわからないと正確なところがわかりません。後は推測で書きます。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
1.
|
5
|
+
1. 普通ならAwakeをoverrideして、その中でDontDestoryOnLoad()を呼び出せばOKです。起きている現象は、変な場所でDontDestoryOnLoadを呼び出しているからかと思います。実装を見直してください。(DoTweenが勝手にDontDestoryOnLoadを呼び出してはいないです)
|
6
6
|
|
7
|
-
2.
|
7
|
+
2. 普通の実装なら、static ScoreManager Instanceなどが定義されているので、ScoreManager.InstanceでScoreManagerのインスタンスがどこでも取得出来ます。DontDestoryOnLoadが変なところで呼び出される実装を修正すれば普通にあとはScoreManagerのフィールドまたはプロパティとして保持すれば良いかと思います。
|
8
8
|
|
9
9
|
|
10
10
|
|
@@ -16,11 +16,19 @@
|
|
16
16
|
|
17
17
|
public int Score{get;set;}
|
18
18
|
|
19
|
+
//継承元のAwake実装がvirtualになっていない場合、virtualに変更する必要があります。
|
20
|
+
|
19
|
-
protected override void Awake
|
21
|
+
protected override void Awake()
|
20
22
|
|
21
23
|
{
|
22
24
|
|
25
|
+
base.Awake();
|
26
|
+
|
27
|
+
if(Instance == this) {
|
28
|
+
|
23
|
-
DontDestoryOnLoad();
|
29
|
+
DontDestoryOnLoad(this.gameObject);
|
30
|
+
|
31
|
+
}
|
24
32
|
|
25
33
|
}
|
26
34
|
|
1
実装元を勘違いしていたので修正
test
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
まず、SingletonMonoBehaviorは標準ライブラリに無いため、どのSingletonMonoBehavior実装であるかがわからないと正確なところがわかりません。後は
|
1
|
+
まず、SingletonMonoBehaviorは標準ライブラリに無いため、どのSingletonMonoBehavior実装であるかがわからないと正確なところがわかりません。後は[こちら](https://gist.github.com/tsubaki/e0406377a1b014754894)の実装と仮定して書いていきます。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
1.
|
5
|
+
1. テラシュールさんのSingletonMonoBehaviorを使用しているならば、AwakeValidlyをoverrideして、その中でDontDestoryOnLoad()を呼び出せばOKです。起きている現象は、変な場所でDontDestoryOnLoadを呼び出しているからかと思います。実装を見直してください。(DoTweenが勝手にDontDestoryOnLoadを呼び出してはいないです)
|
6
6
|
|
7
|
-
2.
|
7
|
+
2. テラシュールさんの(略、ScoreManager.InstanceでScoreManagerのインスタンスがどこでも取得出来ます。DontDestoryOnLoadが変なところで呼び出される実装を修正すれば普通にあとはScoreManagerのフィールドまたはプロパティとして保持すれば良いかと思います。
|
8
8
|
|
9
9
|
|
10
10
|
|