回答編集履歴

1

追記

2018/05/06 12:25

投稿

fiveHundred
fiveHundred

スコア9796

test CHANGED
@@ -19,3 +19,111 @@
19
19
  この場合、「プレハブから生成したオブジェクト」と言ったほうが正しいです。
20
20
 
21
21
  プレハブはシーン上に生成するオブジェクトの元となるものを指すので、そこから生成したものはプレハブとは言わないです。
22
+
23
+
24
+
25
+ ---
26
+
27
+
28
+
29
+ 追記:
30
+
31
+ 私が伝えたかった内容としては、以下のソースコードのような感じです。
32
+
33
+ ただ、注意点があり、以下の通りになります。
34
+
35
+ - 動作未確認なので、バグやエラーがあるかもしれません
36
+
37
+ - 意図を伝えることを優先したため、よいソースコードではないと思いますので、適宜変更してください
38
+
39
+
40
+
41
+ ```C#
42
+
43
+ public class Desert_load5 : MonoBehaviour
44
+
45
+ {
46
+
47
+ public List<Human_Status> Chara = new List<Human_Status>();
48
+
49
+
50
+
51
+ void Start()
52
+
53
+ {
54
+
55
+ // プレハブからオブジェクトを生成
56
+
57
+ GameObject obj = Instantiate(~) as GameObject;
58
+
59
+
60
+
61
+ // オブジェクトからTrigger3を取得
62
+
63
+ Trigger3 trigger = obj.GetComponent<Trigger3>();
64
+
65
+
66
+
67
+ // Trigger3に、Desert_load5のインスタンスを設定
68
+
69
+ trigger.DesertLoad5Object = this;
70
+
71
+
72
+
73
+ // オブジェクトからHuman_Statusを取得
74
+
75
+ Human_Status human_status = obj.GetComponent<Human_Status>();
76
+
77
+
78
+
79
+ // Charaリストに要素を追加
80
+
81
+ Chara.Add(human_status);
82
+
83
+ }
84
+
85
+ }
86
+
87
+ ```
88
+
89
+
90
+
91
+ ```C#
92
+
93
+ public class Trigger3 : MonoBehaviour
94
+
95
+ {
96
+
97
+ public Desert_load5 DesertLoad5Object;
98
+
99
+ public GameObject M_obj;
100
+
101
+
102
+
103
+ void OnTriggerEnter2D(Collider2D c)
104
+
105
+ {
106
+
107
+ if (c.gameObject.tag == "Hit")
108
+
109
+ {
110
+
111
+ // CharaリストにあるM_objのHuman_Statusを削除
112
+
113
+ Human_Status human_status = M_obj.GetComponent<Human_Status>();
114
+
115
+ DesertLoad5Object.Chara.Remove(human_status);
116
+
117
+
118
+
119
+ GameObject.Destroy(M_obj);
120
+
121
+ M_obj = null;
122
+
123
+ }
124
+
125
+ }
126
+
127
+ }
128
+
129
+ ```