質問編集履歴

2

文法の追加

2021/04/05 09:12

投稿

idonishi
idonishi

スコア0

test CHANGED
File without changes
test CHANGED
@@ -44,6 +44,32 @@
44
44
 
45
45
  //UavBulletのプール
46
46
 
47
+ private void Start()
48
+
49
+ {
50
+
51
+ //ヒエラルキーにプールする空オブジェクトを作成
52
+
53
+ UavBullets = new GameObject("UavBullets").transform;
54
+
55
+   //uavbulletのリスト
56
+
57
+ pooledUavBullet = new List<GameObject>();
58
+
59
+ for (int i = 0; i < UAVBULLET_MAX; i++)
60
+
61
+ {
62
+
63
+ GameObject newBullet = CriateUavBullet();
64
+
65
+ newBullet.SetActive(false);
66
+
67
+ pooledUavBullet.Add(newBullet);
68
+
69
+ }
70
+
71
+ }
72
+
47
73
  public GameObject GetUavBullet(Vector3 pos, Quaternion rotate)
48
74
 
49
75
  {
@@ -80,6 +106,18 @@
80
106
 
81
107
  }
82
108
 
109
+
110
+
111
+ private GameObject CriateUavBullet()
112
+
113
+ {
114
+
115
+ GameObject newBullet = Instantiate(bullet, UavBullets);
116
+
117
+ return newBullet;
118
+
119
+ }
120
+
83
121
  ```
84
122
 
85
123
 
@@ -158,6 +196,34 @@
158
196
 
159
197
  //UavBulletのプール
160
198
 
199
+
200
+
201
+ private void Start()
202
+
203
+ {
204
+
205
+ //ヒエラルキーにプールする空オブジェクトを作成
206
+
207
+ UavBullets = new GameObject("UavBullets").transform;
208
+
209
+   //uavbulletのリスト
210
+
211
+ pooledUavBullet = new List<GameObject>();
212
+
213
+ for (int i = 0; i < UAVBULLET_MAX; i++)
214
+
215
+ {
216
+
217
+ GameObject newBullet = CriateUavBullet();
218
+
219
+ newBullet.SetActive(false);
220
+
221
+ pooledUavBullet.Add(newBullet);
222
+
223
+ }
224
+
225
+ }
226
+
161
227
  public GameObject GetUavBullet(Vector3 pos, Quaternion rotate)
162
228
 
163
229
  {
@@ -194,6 +260,18 @@
194
260
 
195
261
  }
196
262
 
263
+
264
+
265
+ private GameObject CriateUavBullet()
266
+
267
+ {
268
+
269
+ GameObject newBullet = Instantiate(bullet, UavBullets);
270
+
271
+ return newBullet;
272
+
273
+ }
274
+
197
275
  ```
198
276
 
199
277
 

1

文法の修正・追加をしました

2021/04/05 09:12

投稿

idonishi
idonishi

スコア0

test CHANGED
File without changes
test CHANGED
@@ -12,16 +12,74 @@
12
12
 
13
13
  ```C#
14
14
 
15
+ //オブジェクト生成
16
+
15
17
  if (shotInterval > shotIntervalMax)
16
18
 
17
19
  {
18
20
 
19
-     BulletPool.instance.GetUavBullet(muzzle.transform.position, MainShotAngle);
21
+     BulletPool.instance.GetUavBullet(muzzle.transform.position, Camera.main.transform.rotation);
20
22
 
21
23
      shotInterval = 0;
22
24
 
23
25
  }
24
26
 
27
+
28
+
29
+ ------------------
30
+
31
+
32
+
33
+ //Bulletの加速
34
+
35
+ //弾を前進させる
36
+
37
+ BulletR.AddForce(transform.forward * ShotSpeed, ForceMode.Impulse);
38
+
39
+
40
+
41
+ ------------------
42
+
43
+
44
+
45
+ //UavBulletのプール
46
+
47
+ public GameObject GetUavBullet(Vector3 pos, Quaternion rotate)
48
+
49
+ {
50
+
51
+ //リストの中から使えるBulletを探し非アクティブがあればアクティブにして返す
52
+
53
+ foreach (GameObject obj in pooledUavBullet)
54
+
55
+ {
56
+
57
+ if (obj.activeInHierarchy == false)
58
+
59
+ {
60
+
61
+ obj.transform.position = pos;
62
+
63
+ obj.transform.rotation = rotate;
64
+
65
+ obj.SetActive(true);
66
+
67
+ return obj;
68
+
69
+ }
70
+
71
+ }
72
+
73
+ //使用できるものがなかったら新たに作成して追加する
74
+
75
+ GameObject newBullet = CriateUavBullet();
76
+
77
+ pooledUavBullet.Add(newBullet);
78
+
79
+ return newBullet;
80
+
81
+ }
82
+
25
83
  ```
26
84
 
27
85
 
@@ -80,6 +138,62 @@
80
138
 
81
139
  }
82
140
 
141
+
142
+
143
+ ------------------
144
+
145
+
146
+
147
+ //Bulletの加速
148
+
149
+ //弾を前進させる
150
+
151
+ BulletR.AddForce(transform.forward * ShotSpeed, ForceMode.Impulse);
152
+
153
+
154
+
155
+ ------------------
156
+
157
+
158
+
159
+ //UavBulletのプール
160
+
161
+ public GameObject GetUavBullet(Vector3 pos, Quaternion rotate)
162
+
163
+ {
164
+
165
+ //リストの中から使えるBulletを探し非アクティブがあればアクティブにして返す
166
+
167
+ foreach (GameObject obj in pooledUavBullet)
168
+
169
+ {
170
+
171
+ if (obj.activeInHierarchy == false)
172
+
173
+ {
174
+
175
+ obj.transform.position = pos;
176
+
177
+ obj.transform.rotation = rotate;
178
+
179
+ obj.SetActive(true);
180
+
181
+ return obj;
182
+
183
+ }
184
+
185
+ }
186
+
187
+ //使用できるものがなかったら新たに作成して追加する
188
+
189
+ GameObject newBullet = CriateUavBullet();
190
+
191
+ pooledUavBullet.Add(newBullet);
192
+
193
+ return newBullet;
194
+
195
+ }
196
+
83
197
  ```
84
198
 
85
199