質問編集履歴
2
書式変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,99 +1,50 @@
|
|
1
|
-
###前提・実現したいこと
|
1
|
+
### 前提・実現したいこと
|
2
|
-
|
3
2
|
Unityでシューティングゲームを作っており、その中でプレイヤーに向かって直線的に向かってくる弾(所謂自機狙い)を作ろうとしています。
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
###発生している問題・エラーメッセージ
|
4
|
+
### 発生している問題・エラーメッセージ
|
8
|
-
|
9
5
|
以下のソースコードで試してみたのですが、弾が敵から全く出てきません。その以外は正常に動いています。エラーメッセージはありませんでした。
|
10
6
|
|
11
|
-
|
12
|
-
|
13
|
-
###該当のソースコード
|
7
|
+
### 該当のソースコード
|
14
|
-
|
15
8
|
(関係ありそうな部分のみ載せています)
|
16
9
|
|
17
|
-
|
18
|
-
|
19
10
|
**敵に関するスクリプト**
|
20
|
-
|
21
11
|
```C#
|
22
|
-
|
23
12
|
public GameObject target,bullet2;
|
24
|
-
|
25
13
|
float frame=0;
|
26
14
|
|
27
|
-
|
28
|
-
|
29
15
|
public void Update()
|
30
|
-
|
31
16
|
{
|
32
|
-
|
33
17
|
//敵の移動
|
34
|
-
|
35
18
|
Vector2 direction = new Vector2(5*Mathf.Sin(frame*variable), 0);
|
36
|
-
|
37
19
|
GetComponent<Rigidbody2D>().velocity = direction * spaceship.speed;
|
38
|
-
|
39
20
|
|
40
|
-
|
41
21
|
//自機狙い弾の生成
|
42
|
-
|
43
22
|
if(frame%50==0 && target!=null)
|
44
|
-
|
45
23
|
{
|
46
|
-
|
47
24
|
Quaternion homingRotate = Quaternion.LookRotation(target.transform.position - transform.position);
|
48
|
-
|
49
25
|
Instantiate(bullet2, transform.position, homingRotate);
|
50
|
-
|
51
26
|
}
|
52
|
-
|
53
27
|
|
54
|
-
|
55
28
|
frame++;
|
56
|
-
|
57
29
|
}
|
58
|
-
|
59
30
|
```
|
60
|
-
|
61
31
|
**弾に関するスクリプト**
|
62
|
-
|
63
32
|
```C#
|
64
|
-
|
65
33
|
public class Bullet_rapid : MonoBehaviour {
|
66
|
-
|
67
34
|
public int speed = 4;
|
68
|
-
|
69
35
|
public float lifeTime = 5;
|
70
36
|
|
71
|
-
|
72
|
-
|
73
37
|
void Start ()
|
74
|
-
|
75
38
|
{
|
76
|
-
|
77
39
|
GetComponent<Rigidbody2D>().velocity = transform.up.normalized * speed;
|
78
|
-
|
79
40
|
Destroy(gameObject, lifeTime);
|
80
|
-
|
81
41
|
}
|
82
|
-
|
83
42
|
```
|
84
|
-
|
85
43
|
bullet2には自機狙いの弾を、targetにはプレイヤーをセットしました。
|
86
44
|
|
87
45
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
###試したこと
|
46
|
+
### 試したこと
|
92
|
-
|
93
47
|
ここに書いたソースコード以外にもLookAtを用いたり弾とプレイヤーをむすぶベクトルを用いたりして自機狙いを作ろうとしてみましたが、いずれもエラーはないものの弾が生成されなかったり生成されてもなぜか真上に飛んでしまったりとうまくいきませんでした。
|
94
|
-
|
95
|
-
###その他
|
48
|
+
### その他
|
96
|
-
|
97
49
|
Unityのバージョンは5.5.1です。
|
98
|
-
|
99
50
|
弾の生成に関してはInstantiateを使う方法のみ知っています。もし他にもっと良い方法があるよという方がいらっしゃればご教授していただけると嬉しいです。よろしくお願いします。
|
1
誤字脱字の訂正・タイトルが分かりにくいので改善
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Unity C♯
|
1
|
+
Unity2D C♯ Quaternionを用いた自機狙いについて
|
test
CHANGED
@@ -44,7 +44,7 @@
|
|
44
44
|
|
45
45
|
{
|
46
46
|
|
47
|
-
Quaternio homingRotate = Quaternion.LookRotation(target.transform.position - transform.position);
|
47
|
+
Quaternion homingRotate = Quaternion.LookRotation(target.transform.position - transform.position);
|
48
48
|
|
49
49
|
Instantiate(bullet2, transform.position, homingRotate);
|
50
50
|
|
@@ -96,4 +96,4 @@
|
|
96
96
|
|
97
97
|
Unityのバージョンは5.5.1です。
|
98
98
|
|
99
|
-
弾の生成に関してはInstantiateを使う方法のみ知っています。もし他にもっと良い方法があるよという方がいらっしゃればご
|
99
|
+
弾の生成に関してはInstantiateを使う方法のみ知っています。もし他にもっと良い方法があるよという方がいらっしゃればご教授していただけると嬉しいです。よろしくお願いします。
|