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

回答編集履歴

1

具体的な解決策を記述しました

2020/05/02 03:03

投稿

Carly7766
Carly7766

スコア33

answer CHANGED
@@ -1,2 +1,33 @@
1
1
  すみません。時間が経ってしまいましたが事故解決しました。
2
- クラスの依存関係がおかしいからこんなことになる訳なので素直に設計を見直しました。
2
+ クラスの依存関係がおかしいからこんなことになる訳なので素直に設計を見直しました。
3
+ 具体的には
4
+
5
+ ```c#
6
+ public class Hoge : MonoBehaviour
7
+ {
8
+ int num = 0;
9
+ public GetValue()
10
+ {
11
+ return num + 1;
12
+ }
13
+
14
+ public Die()
15
+ {
16
+ Destroy(this.gameObject);
17
+ }
18
+ }
19
+
20
+ public class Piyo : MonoBehaviour
21
+ {
22
+ [SerializeField]
23
+ private Hoge hoge;
24
+
25
+ public Awake()
26
+ {
27
+ Debug.Log(hoge.GetValue());
28
+ hoge.Die();
29
+ }
30
+ }
31
+ ```
32
+ のように関数を呼ぶ側が必要な関数を呼んだ後に`Hoge`自身を消す関数を呼ぶようにしました。
33
+ 必要に応じて`Die()`に消す前に必要な処理を書いておくといいと思います。