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

回答編集履歴

1

追記

2018/05/06 12:25

投稿

fiveHundred
fiveHundred

スコア10513

answer CHANGED
@@ -8,4 +8,58 @@
8
8
  > プレファブをnullにした後、
9
9
 
10
10
  この場合、「プレハブから生成したオブジェクト」と言ったほうが正しいです。
11
- プレハブはシーン上に生成するオブジェクトの元となるものを指すので、そこから生成したものはプレハブとは言わないです。
11
+ プレハブはシーン上に生成するオブジェクトの元となるものを指すので、そこから生成したものはプレハブとは言わないです。
12
+
13
+ ---
14
+
15
+ 追記:
16
+ 私が伝えたかった内容としては、以下のソースコードのような感じです。
17
+ ただ、注意点があり、以下の通りになります。
18
+ - 動作未確認なので、バグやエラーがあるかもしれません
19
+ - 意図を伝えることを優先したため、よいソースコードではないと思いますので、適宜変更してください
20
+
21
+ ```C#
22
+ public class Desert_load5 : MonoBehaviour
23
+ {
24
+ public List<Human_Status> Chara = new List<Human_Status>();
25
+
26
+ void Start()
27
+ {
28
+ // プレハブからオブジェクトを生成
29
+ GameObject obj = Instantiate(~) as GameObject;
30
+
31
+ // オブジェクトからTrigger3を取得
32
+ Trigger3 trigger = obj.GetComponent<Trigger3>();
33
+
34
+ // Trigger3に、Desert_load5のインスタンスを設定
35
+ trigger.DesertLoad5Object = this;
36
+
37
+ // オブジェクトからHuman_Statusを取得
38
+ Human_Status human_status = obj.GetComponent<Human_Status>();
39
+
40
+ // Charaリストに要素を追加
41
+ Chara.Add(human_status);
42
+ }
43
+ }
44
+ ```
45
+
46
+ ```C#
47
+ public class Trigger3 : MonoBehaviour
48
+ {
49
+ public Desert_load5 DesertLoad5Object;
50
+ public GameObject M_obj;
51
+
52
+ void OnTriggerEnter2D(Collider2D c)
53
+ {
54
+ if (c.gameObject.tag == "Hit")
55
+ {
56
+ // CharaリストにあるM_objのHuman_Statusを削除
57
+ Human_Status human_status = M_obj.GetComponent<Human_Status>();
58
+ DesertLoad5Object.Chara.Remove(human_status);
59
+
60
+ GameObject.Destroy(M_obj);
61
+ M_obj = null;
62
+ }
63
+ }
64
+ }
65
+ ```