質問編集履歴

4

改善

2018/07/03 03:01

投稿

GOTOken
GOTOken

スコア54

test CHANGED
File without changes
test CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  以下のスクリプトを記述したとき、最後のInstantiateの部分の処理のみが通っており、Lvに応じたif文が機能していない。
6
6
 
7
+ deltaTimeの初期化ができない。
8
+
7
9
 
8
10
 
9
11
  実装したいこと
@@ -34,7 +36,7 @@
34
36
 
35
37
  これらのことを試しましたが、Lv3まで処理が飛んでしまっているので、どのように分岐すれば段階別にすることができるのか案をご教授していただきたいです。
36
38
 
37
-
39
+ また、再度計測させるためにそれぞれの処理の最後にdeltaTimeを=0(初期化)するようにした。
38
40
 
39
41
 
40
42
 

3

改善

2018/07/03 03:00

投稿

GOTOken
GOTOken

スコア54

test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,8 @@
32
32
 
33
33
  bool型の変数を用意し、それぞれの場合に合わせて変えれるようにしようとした。
34
34
 
35
+ これらのことを試しましたが、Lv3まで処理が飛んでしまっているので、どのように分岐すれば段階別にすることができるのか案をご教授していただきたいです。
36
+
35
37
 
36
38
 
37
39
 

2

改善

2018/07/03 01:40

投稿

GOTOken
GOTOken

スコア54

test CHANGED
File without changes
test CHANGED
@@ -138,7 +138,7 @@
138
138
 
139
139
  Lv2 = true;
140
140
 
141
- return;
141
+
142
142
 
143
143
  //泡弾 Lv.2
144
144
 
@@ -158,7 +158,7 @@
158
158
 
159
159
  Debug.Log("Lv.2");
160
160
 
161
- return;
161
+
162
162
 
163
163
  //泡弾 Lv.3
164
164
 
@@ -178,7 +178,7 @@
178
178
 
179
179
  Lv3 = false;
180
180
 
181
- return;
181
+
182
182
 
183
183
  }
184
184
 

1

改善

2018/07/03 01:36

投稿

GOTOken
GOTOken

スコア54

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,27 @@
38
38
 
39
39
  ```c#
40
40
 
41
+ using System.Collections;
42
+
43
+ using System.Collections.Generic;
44
+
45
+ using UnityEngine;
46
+
47
+
48
+
49
+ public class playerCont : MonoBehaviour {
50
+
51
+
52
+
41
- //レベル段階別判定用
53
+ public int PlayerHP;
54
+
55
+ public int PlayerBUlletGun;//Playerの撃てる弾数設定用
56
+
57
+ public float Playerspped = 3;
58
+
59
+ public float BulletCount;
60
+
61
+ public float bulletSpeed;
42
62
 
43
63
  public bool Lv1;
44
64
 
@@ -48,11 +68,49 @@
48
68
 
49
69
 
50
70
 
71
+
72
+
73
+ public Bullet BulletPrefab;//弾Prefab格納
74
+
75
+ public Transform target_to_Move;
76
+
77
+ public GameObject tarGet;
78
+
79
+ public AudioClip clip;
80
+
81
+
82
+
83
+ private Vector2 prevPos;
84
+
85
+
86
+
87
+ public Transform my_Trans;
88
+
89
+ private Rigidbody2D rb2d;
90
+
51
91
  private float delta;
52
92
 
53
-
93
+ private AudioSource audiosource;
94
+
95
+
96
+
54
-
97
+ // Use this for initialization
98
+
55
-
99
+ void Start () {
100
+
101
+ this.rb2d = GetComponent<Rigidbody2D>();
102
+
103
+ // this.anim = GetComponent<Animator>();
104
+
105
+ this.audiosource = GetComponent<AudioSource>();
106
+
107
+
108
+
109
+ }
110
+
111
+
112
+
113
+ // Update is called once per frame
56
114
 
57
115
  void Update () {
58
116
 
@@ -60,15 +118,13 @@
60
118
 
61
119
  {
62
120
 
63
- delta+= Time.deltaTime ;
121
+ delta+= Time.deltaTime ;
64
-
65
-
66
122
 
67
123
  Lv1 = true;
68
124
 
69
125
  // 泡弾 Lv.1
70
126
 
71
- if (delta < 2 && Lv1)
127
+ if (delta > 2 && Lv1)
72
128
 
73
129
  {
74
130
 
@@ -86,13 +142,13 @@
86
142
 
87
143
  //泡弾 Lv.2
88
144
 
89
- if (delta< 4 && Lv2)
145
+ if (delta > 4 && Lv2)
90
146
 
91
147
  {
92
148
 
93
149
  BulletPrefab.transform.localScale = new Vector3(3, 3, 3);
94
150
 
95
- Instantiate(BulletPrefab, prevPos, my_Trans.rotation);
151
+ Instantiate(BulletPrefab, prevPos, my_Trans.rotation);
96
152
 
97
153
  delta = 0;
98
154
 
@@ -106,11 +162,13 @@
106
162
 
107
163
  //泡弾 Lv.3
108
164
 
109
- if (delta < 7 && Lv3)
165
+ if (delta > 7 && Lv3)
110
-
166
+
167
+
168
+
111
- {
169
+ {
112
-
170
+
113
- BulletPrefab.transform.localScale = new Vector3(6,6,6);
171
+ BulletPrefab.transform.localScale = new Vector3(6, 6, 6);
114
172
 
115
173
  Instantiate(BulletPrefab, prevPos, my_Trans.rotation);
116
174
 
@@ -126,10 +184,176 @@
126
184
 
127
185
  }
128
186
 
187
+
188
+
129
189
  }
130
190
 
131
191
  }
132
192
 
193
+ //ボタンなしの連射機能
194
+
195
+ //delta += Time.deltaTime;
196
+
197
+ //if (delta > BulletCount)
198
+
199
+ //{
200
+
201
+ // delta = 0;
202
+
203
+ // Instantiate(BulletPrefab, prevPos, my_Trans.rotation);
204
+
205
+ // audiosource.PlayOneShot(clip);
206
+
207
+ // // Debug.Log("生成");
208
+
209
+ //}
210
+
211
+
212
+
213
+ // }
214
+
215
+ }
216
+
217
+ void setup()
218
+
219
+ {
220
+
221
+ prevPos = this.transform.position;
222
+
223
+ }
224
+
225
+ private void FixedUpdate()
226
+
227
+ {
228
+
229
+ PlayerMove();
230
+
231
+ }
232
+
233
+ void PlayerMove()
234
+
235
+ {
236
+
237
+ //移動処理
238
+
239
+ float dy = Input.GetAxis("Vertical") * Playerspped;
240
+
241
+ float dx = Input.GetAxis("Horizontal") * Playerspped;
242
+
243
+ rb2d.Sleep();
244
+
245
+
246
+
247
+ if ((dx > -0.2f && dx < 0.2f) && (dy < 0.2f && dy > -0.2f))
248
+
249
+ {
250
+
251
+
252
+
253
+ return;
254
+
255
+ }
256
+
257
+
258
+
259
+ rb2d.velocity = new Vector2(dx, dy);
260
+
261
+
262
+
263
+ //スティック傾き取得
264
+
265
+ float angle = Mathf.Atan2(-dx, dy);
266
+
267
+ float p_angle = (angle) / (Mathf.PI * 2) * 360;
268
+
269
+ this.transform.rotation = Quaternion.Euler(0, 0, p_angle);
270
+
271
+
272
+
273
+ if (dy != 0 || dx != 0)
274
+
275
+ {
276
+
277
+ var diff = (target_to_Move.position - transform.position).normalized;
278
+
279
+ transform.rotation = Quaternion.FromToRotation(Vector3.up, diff);
280
+
281
+
282
+
283
+ }
284
+
285
+
286
+
287
+
288
+
289
+ ////角度計算
290
+
291
+ var nowPos = this.transform.position;
292
+
293
+
294
+
295
+ float x = this.transform.position.x - prevPos.x;
296
+
297
+ float y = this.transform.position.y - prevPos.y;
298
+
299
+
300
+
301
+ Vector2 vec = new Vector2(x, y).normalized;
302
+
303
+
304
+
305
+
306
+
307
+ float rot = Mathf.Atan2(vec.y, vec.x) * 180 / Mathf.PI;
308
+
309
+ if (rot > 180) rot -= 360;
310
+
311
+ if (rot < -180) rot += 360;
312
+
313
+
314
+
315
+ prevPos = nowPos;
316
+
317
+
318
+
319
+ // Debug.Log("Angle = " + rot);
320
+
321
+ prevPos = this.transform.position;
322
+
323
+
324
+
325
+
326
+
327
+ // ShootNWay(,bulletSpeed,BulletCount)
328
+
329
+
330
+
331
+
332
+
333
+ }
334
+
335
+
336
+
337
+ private void OnTriggerEnter2D(Collider2D collision)
338
+
339
+ {   
340
+
341
+ //Playerのダメージ計算
342
+
343
+ if(collision.gameObject.name == "Enemy")
344
+
345
+ {
346
+
347
+ PlayerHP = PlayerHP - 1;
348
+
349
+ }
350
+
351
+ }
352
+
353
+ }
354
+
355
+
356
+
133
357
 
134
358
 
135
359
  ```