質問編集履歴

4

内容の修正

2022/03/12 14:24

投稿

bozusyogen
bozusyogen

スコア12

test CHANGED
File without changes
test CHANGED
@@ -11,13 +11,14 @@
11
11
  ## 経緯
12
12
  IEnumerator関数を作り、その中に弾の複製や弾を飛ばす座標をどう決めるかのプログラムを書き、Start関数内に、Start Coroutineのコードを書き、そこからIEnumeratorの処理を行えるようして、実行させようと試みたがプレハブが作成されなかった。
13
13
 
14
- プレハブの作成に問題があるのか、IEnumerator関数そのものに問題があるのか、IEnumerator関数内に文字を表示させるプログラムを書いたところ、コンソールに表示されなかった。よって、IEnumerator自体が実行されていないと考えた。
14
+ プレハブの作成に問題があるのか、IEnumerator関数そのものに問題があるのか、IEnumerator関数内に文字を表示させるプログラムを書いたところ、コンソールに表示されなかった。
15
15
  ## わかっていること
16
16
  ・start関数は文字を表示させるプログラム(DebugLog)により動作していることが確認済み
17
17
  ・IEnumerator内部にDebugLogを打ち込んでも反応しなかった
18
18
  ・キーを押したときにIEnumeratorを実行するような、start関数内以外からの関数を実行する方法も試したが起動されなかった。
19
19
  ・update内にプレハブを生成するプログラムを書くと、その時は正常に一フレームに一つプレハブが生成された。
20
20
  ・コードエラーは確認されておらず、ゲームは普通にプレイできる。
21
+ ・IEnumeratorの中のループ文の外に書いたプログラムは実行された。
21
22
  ```C#
22
23
  コード
23
24
  ```using System.Collections;

3

コードの変更 内容修正

2022/03/12 14:09

投稿

bozusyogen
bozusyogen

スコア12

test CHANGED
File without changes
test CHANGED
@@ -16,6 +16,7 @@
16
16
  ・start関数は文字を表示させるプログラム(DebugLog)により動作していることが確認済み
17
17
  ・IEnumerator内部にDebugLogを打ち込んでも反応しなかった
18
18
  ・キーを押したときにIEnumeratorを実行するような、start関数内以外からの関数を実行する方法も試したが起動されなかった。
19
+ ・update内にプレハブを生成するプログラムを書くと、その時は正常に一フレームに一つプレハブが生成された。
19
20
  ・コードエラーは確認されておらず、ゲームは普通にプレイできる。
20
21
  ```C#
21
22
  コード
@@ -27,7 +28,7 @@
27
28
  {
28
29
  GameObject chobforenemyattack;
29
30
  GameObject enemyobforenemyattack;
30
- GameObject bulletprefab;
31
+ public GameObject bulletprefab;
31
32
  character chscforenemyattack;
32
33
  enemysc enemyscforenemyattack;
33
34
 
@@ -61,7 +62,6 @@
61
62
  counter += 1;
62
63
  neraizahyou[counter] = chposfornerai;
63
64
 
64
- bulletprefab = (GameObject)Resources.Load("bullet");
65
65
  Instantiate(bulletprefab, enemypos2, Quaternion.identity);
66
66
 
67
67
  yield return new WaitForSeconds(2f);

2

内容の修正

2022/03/11 15:08

投稿

bozusyogen
bozusyogen

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,17 @@
1
1
 
2
2
 
3
- # IEnumeratorを使い、銃弾を複製したいのですがIEnumeratorが実行されません。原因がわかる方、教えてくれると嬉しいです。
3
+ # IEnumeratorを使い、銃弾を複製したいのですがIEnumeratorの中の処理が実行されません。原因がわかる方、教えてくれると嬉しいです。
4
4
 
5
5
  ## 行いたいこと
6
6
  2Dゲームを作っており、その敵に自分の座標に銃を撃ってくるプログラムをしたい。
7
7
  そこで2秒に一発、銃弾のプレハブを作り、その銃弾が複製されたときの自分の座標に向かって飛んでくるプログラムを書こうと考え、ネットでしらべたところ、IEnumeratorという時間の取り扱いができる関数があることを知りそれを使ってみようと考えた。
8
8
  ## 問題点
9
+ IEnumerator内の処理が全て、一回も行われない
10
+
11
+ ## 経緯
12
+ IEnumerator関数を作り、その中に弾の複製や弾を飛ばす座標をどう決めるかのプログラムを書き、Start関数内に、Start Coroutineのコードを書き、そこからIEnumeratorの処理を行えるようして、実行させようと試みたがプレハブが作成されなかった。
13
+
9
- そこでIEnumerator関数を作り、Start関数内で実行させようと試みたがプレハブが作成されなかった。プレハブの作成に問題があるのか、IEnumerator関数そのものに問題があるのか、IEnumerator関数内に文字を表示させるプログラムを書いたところ、コンソールに表示されなかった。よって、IEnumerator自体が実行されていないと考えた。
14
+ プレハブの作成に問題があるのか、IEnumerator関数そのものに問題があるのか、IEnumerator関数内に文字を表示させるプログラムを書いたところ、コンソールに表示されなかった。よって、IEnumerator自体が実行されていないと考えた。
10
15
  ## わかっていること
11
16
  ・start関数は文字を表示させるプログラム(DebugLog)により動作していることが確認済み
12
17
  ・IEnumerator内部にDebugLogを打ち込んでも反応しなかった

1

書式の改善、コードの入力

2022/03/11 13:03

投稿

bozusyogen
bozusyogen

スコア12

test CHANGED
File without changes
test CHANGED
@@ -1,9 +1,74 @@
1
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-03-11/2e398f86-8859-42ff-bd30-4a9fd4d7f27b.png)
2
1
 
3
- IEnumeratorを使い、球を複製したいのですがIEnumeratorが起動されません。原因がわかる方、教えてくれると嬉しいです。
4
2
 
5
- [わかっていること]
6
- start関数はDebugLogにより動作していることが確認済み
7
- IEnumerator内部にDebugLogを打ち込んでも反応しなかった
8
- キーを押したときにStartcoroutineするようなstart以外からの起動方法も試したが起動されった
3
+ # IEnumeratorを使い銃弾を複製したいのですIEnumeratorが実行されません。原因がわる方、教えてくれると嬉しいです
9
4
 
5
+ ## 行いたいこと
6
+ 2Dゲームを作っており、その敵に自分の座標に銃を撃ってくるプログラムをしたい。
7
+ そこで2秒に一発、銃弾のプレハブを作り、その銃弾が複製されたときの自分の座標に向かって飛んでくるプログラムを書こうと考え、ネットでしらべたところ、IEnumeratorという時間の取り扱いができる関数があることを知りそれを使ってみようと考えた。
8
+ ## 問題点
9
+ そこでIEnumerator関数を作り、Start関数内で実行させようと試みたがプレハブが作成されなかった。プレハブの作成に問題があるのか、IEnumerator関数そのものに問題があるのか、IEnumerator関数内に文字を表示させるプログラムを書いたところ、コンソールに表示されなかった。よって、IEnumerator自体が実行されていないと考えた。
10
+ ## わかっていること
11
+ ・start関数は文字を表示させるプログラム(DebugLog)により動作していることが確認済み
12
+ ・IEnumerator内部にDebugLogを打ち込んでも反応しなかった
13
+ ・キーを押したときにIEnumeratorを実行するような、start関数内以外からの関数を実行する方法も試したが起動されなかった。
14
+ ・コードエラーは確認されておらず、ゲームは普通にプレイできる。
15
+ ```C#
16
+ コード
17
+ ```using System.Collections;
18
+ using System.Collections.Generic;
19
+ using UnityEngine;
20
+
21
+ public class enemyattacksc : MonoBehaviour
22
+ {
23
+ GameObject chobforenemyattack;
24
+ GameObject enemyobforenemyattack;
25
+ GameObject bulletprefab;
26
+ character chscforenemyattack;
27
+ enemysc enemyscforenemyattack;
28
+
29
+ Vector3 chposfornerai;
30
+ Vector3 enemypos2;
31
+ public Vector3[] neraizahyou;
32
+
33
+ public int counter;
34
+
35
+ // Start is called before the first frame update
36
+ void Start()
37
+ {
38
+ Debug.Log("Oi");
39
+ chobforenemyattack = GameObject.Find("figure_hashiru");
40
+ chscforenemyattack = chobforenemyattack.GetComponent<character>();
41
+
42
+ enemyobforenemyattack = GameObject.Find("enemy");
43
+ enemyscforenemyattack = enemyobforenemyattack.GetComponent<enemysc>();
44
+
45
+ // 関数"Zahyouset"を実行
46
+ StartCoroutine(Zahyouset());
47
+
48
+ counter = -1;
49
+ }
50
+
51
+ // 以下"Zahyouset"関数
52
+ IEnumerator Zahyouset()
53
+ {
54
+ while (true)
55
+ {
56
+ counter += 1;
57
+ neraizahyou[counter] = chposfornerai;
58
+
59
+ bulletprefab = (GameObject)Resources.Load("bullet");
60
+ Instantiate(bulletprefab, enemypos2, Quaternion.identity);
61
+
62
+ yield return new WaitForSeconds(2f);
63
+ }
64
+ }
65
+
66
+ // Update is called once per frame
67
+ void Update()
68
+ {
69
+ chposfornerai = chscforenemyattack.charactermovement;
70
+
71
+ enemypos2 = enemyscforenemyattack.enemypos;
72
+
73
+ }
74
+ }