質問編集履歴
2
妥協案ではなく解決したので、解決済みにし、書き換えました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,10 +1,4 @@
|
|
1
1
|
### ランダム生成したアイテムを、それぞれランダムな方向に移動させたい
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
★追記 頂いたアドバイスで、8方向をランダムに取得し移動させることはできたので、
|
6
|
-
|
7
|
-
下記②にそのコードを書いておきます。
|
8
2
|
|
9
3
|
|
10
4
|
|
@@ -96,6 +90,8 @@
|
|
96
90
|
|
97
91
|
②大量生産するアイテム(プレハブ)につけるスクリプト
|
98
92
|
|
93
|
+
ご教授頂き、0度〜360度の中からランダムに方向を決め移動させることができました。
|
94
|
+
|
99
95
|
|
100
96
|
|
101
97
|
```C#
|
@@ -108,11 +104,11 @@
|
|
108
104
|
|
109
105
|
|
110
106
|
|
111
|
-
public class ocha0
|
107
|
+
public class ocha03 : MonoBehaviour
|
112
108
|
|
113
109
|
{
|
114
110
|
|
115
|
-
p
|
111
|
+
private float Speed=1;//なぜかここをどれだけ大きくしても速くならないので、下の☆で掛け算してます
|
116
112
|
|
117
113
|
private bool nonVisibleAct;//映ってなくても動いてる
|
118
114
|
|
@@ -120,7 +116,7 @@
|
|
120
116
|
|
121
117
|
Rigidbody2D rb = null;
|
122
118
|
|
123
|
-
private SpriteRenderer sr = null;
|
119
|
+
private SpriteRenderer sr = null;
|
124
120
|
|
125
121
|
|
126
122
|
|
@@ -128,41 +124,33 @@
|
|
128
124
|
|
129
125
|
{
|
130
126
|
|
131
|
-
rb = GetComponent<Rigidbody2D>();
|
127
|
+
rb = GetComponent<Rigidbody2D>();
|
132
128
|
|
133
129
|
sr = GetComponent<SpriteRenderer>();//自身が画面に映っているか判断
|
134
130
|
|
135
131
|
|
136
132
|
|
137
|
-
float
|
133
|
+
float angle = Random.Range(0, 360);//0度〜360度の中からランダムに角度(方向)を取得
|
138
134
|
|
139
|
-
float
|
135
|
+
float rad = angle * Mathf.Deg2Rad;//取得した角度をラジアン角に変換(数学ワカンナイデス)
|
140
136
|
|
137
|
+
|
138
|
+
|
139
|
+
double addforceX = Mathf.Sin((rad) * Speed);
|
140
|
+
|
141
|
-
|
141
|
+
double addforceY = Mathf.Cos((rad) * Speed);//上の2行で取得した方向をaddforceに代入
|
142
|
+
|
143
|
+
Vector2 moveVector = new Vector2((float)addforceX, (float)addforceY);//Vector2(速度)をaddforceから取得
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
rb.velocity = moveVector*4;//☆インスタンスに速度を渡す
|
142
148
|
|
143
149
|
}
|
144
150
|
|
145
151
|
}
|
146
152
|
|
147
153
|
```
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
### 引き続きアドバイスを募集する理由
|
152
|
-
|
153
|
-
当方のこのゲームにおいては8方向でもいいのですが、後学のために、
|
154
|
-
|
155
|
-
「生成された位置から360度、ランダムに方向が決まり移動する」方法も知りたいです。
|
156
|
-
|
157
|
-
ですが検索したところ、360度となると「方向」ではなく「回転」という概念になるようで、
|
158
|
-
|
159
|
-
そして「方向」と「回転」は全く別の概念のようで、
|
160
|
-
|
161
|
-
「回転」と「速度」を掛け合わせる書き方を当方は今の所編み出せておりません。
|
162
|
-
|
163
|
-
もしお詳しい方がこちらをご覧でしたら、ご教授頂きたく存じます。
|
164
|
-
|
165
|
-
|
166
154
|
|
167
155
|
### 補足情報(FW/ツールのバージョンなど)
|
168
156
|
|
1
妥協案といったところで解決したので、頂いた回答に高評価とお礼申し上げ、しかし解決済みにはせず引き続きアドバイスを募集する旨を書きました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,6 +2,12 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
★追記 頂いたアドバイスで、8方向をランダムに取得し移動させることはできたので、
|
6
|
+
|
7
|
+
下記②にそのコードを書いておきます。
|
8
|
+
|
9
|
+
|
10
|
+
|
5
11
|
Unity、C#ともに初心者なので、至らぬ点あるかと思いますがご容赦ください。
|
6
12
|
|
7
13
|
Unityの3Dモードで、タテスクロールの障害物競争のようなゲームを作っています。
|
@@ -24,7 +30,7 @@
|
|
24
30
|
|
25
31
|
①アイテム生成担当のオブジェクト(空のオブジェクト)につけているスクリプト
|
26
32
|
|
27
|
-
|
33
|
+
x、yともランダムな場所に加速アイテムが出てくれます。
|
28
34
|
|
29
35
|
```C#
|
30
36
|
|
@@ -88,17 +94,7 @@
|
|
88
94
|
|
89
95
|
```
|
90
96
|
|
91
|
-
②大量生産するアイテム(プレハブ)につけ
|
97
|
+
②大量生産するアイテム(プレハブ)につけるスクリプト
|
92
|
-
|
93
|
-
こちらが問題で、エラーは出ないのですが、
|
94
|
-
|
95
|
-
現状、生成されたアイテムが全て右ななめ上にしか移動しません。
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
実現したいこと:生成された位置からそれぞれ、上下左右ななめランダムにふよふよ? 移動してほしい。
|
100
|
-
|
101
|
-
ご教授頂きたく存じます。
|
102
98
|
|
103
99
|
|
104
100
|
|
@@ -138,9 +134,11 @@
|
|
138
134
|
|
139
135
|
|
140
136
|
|
137
|
+
float x = Random.Range(-1, 1);//
|
138
|
+
|
139
|
+
float y = Random.Range(1, -1);//
|
140
|
+
|
141
|
-
rb.velocity = new Vector2(Speed,
|
141
|
+
rb.velocity = new Vector2(x*Speed,y*Speed);//この3行で、生成された位置から8方向のうちどれかに移動してくれます
|
142
|
-
|
143
|
-
Quaternion randomRot = Random.rotation;//★ここの2行を掛け算すればいいのかと思うのですが書き方がわかりません
|
144
142
|
|
145
143
|
}
|
146
144
|
|
@@ -148,6 +146,24 @@
|
|
148
146
|
|
149
147
|
```
|
150
148
|
|
149
|
+
|
150
|
+
|
151
|
+
### 引き続きアドバイスを募集する理由
|
152
|
+
|
153
|
+
当方のこのゲームにおいては8方向でもいいのですが、後学のために、
|
154
|
+
|
155
|
+
「生成された位置から360度、ランダムに方向が決まり移動する」方法も知りたいです。
|
156
|
+
|
157
|
+
ですが検索したところ、360度となると「方向」ではなく「回転」という概念になるようで、
|
158
|
+
|
159
|
+
そして「方向」と「回転」は全く別の概念のようで、
|
160
|
+
|
161
|
+
「回転」と「速度」を掛け合わせる書き方を当方は今の所編み出せておりません。
|
162
|
+
|
163
|
+
もしお詳しい方がこちらをご覧でしたら、ご教授頂きたく存じます。
|
164
|
+
|
165
|
+
|
166
|
+
|
151
167
|
### 補足情報(FW/ツールのバージョンなど)
|
152
168
|
|
153
169
|
|