質問編集履歴
2
すみませんでした。画像を添付し忘れていました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
###解決したいこと
|
5
5
|
現在、以下画像のようにシューティングゲームを作成したいと思っています。
|
6
6
|
左下のUIが中央の青いオブジェクト(プレイヤー)を動かすジョイスティックで、右下のUIがプレイヤーから弾を発射させるボタンです。
|
7
|
+

|
8
|
+
|
7
9
|
スティックで移動させながら弾を発射出来るようにしたのですが、発射ボタンを押すとタップ感知が反応してしまい、ジョイスティックが右側に持っていかれてしまいプレイヤーの挙動がおかしなことになってしまいます。
|
8
10
|
|
9
11
|
~~移動や発射自体はそれぞれ問題無くうごくのですが、両立させる方法が中々思いつきません…
|
1
試してみたことを追記しました。
title
CHANGED
File without changes
|
body
CHANGED
@@ -6,11 +6,13 @@
|
|
6
6
|
左下のUIが中央の青いオブジェクト(プレイヤー)を動かすジョイスティックで、右下のUIがプレイヤーから弾を発射させるボタンです。
|
7
7
|
スティックで移動させながら弾を発射出来るようにしたのですが、発射ボタンを押すとタップ感知が反応してしまい、ジョイスティックが右側に持っていかれてしまいプレイヤーの挙動がおかしなことになってしまいます。
|
8
8
|
|
9
|
-
移動や発射自体はそれぞれ問題無くうごくのですが、両立させる方法が中々思いつきません…
|
9
|
+
~~移動や発射自体はそれぞれ問題無くうごくのですが、両立させる方法が中々思いつきません…
|
10
|
-
もし何か良いアイディア等あればご教授頂ければと思います。
|
10
|
+
もし何か良いアイディア等あればご教授頂ければと思います。~~
|
11
11
|
|
12
|
+
**編集追記**
|
12
|
-
|
13
|
+
方法として、タップ処理でタップできる箇所の範囲を制限する。
|
13
|
-
|
14
|
+
あるいはドラッグ中の場合のタップを受け付けないといった物を思いついたのですが、
|
15
|
+
上手く実装できません……
|
14
16
|
|
15
17
|
```C#
|
16
18
|
using UnityEngine;
|
@@ -192,58 +194,4 @@
|
|
192
194
|
#endif
|
193
195
|
|
194
196
|
}
|
195
|
-
```
|
196
|
-
|
197
|
-
```C#
|
198
|
-
using System.Collections;
|
199
|
-
using System.Collections.Generic;
|
200
|
-
using UnityEngine;
|
201
|
-
|
202
|
-
|
203
|
-
public class MovingCube : MonoBehaviour
|
204
|
-
{
|
205
|
-
|
206
|
-
//先ほど作成したJoystick
|
207
|
-
[SerializeField]
|
208
|
-
private Joystick _joystick = null;
|
209
|
-
|
210
|
-
//移動速度(上下移動の速度)
|
211
|
-
private const float SPEED = 0.8f;
|
212
|
-
//移動速度(自動直進の速度変数)
|
213
|
-
public float speed;
|
214
|
-
|
215
|
-
//弾プレハブを格納する変数
|
216
|
-
public GameObject beam;
|
217
|
-
//弾の出る間隔を設定する変数
|
218
|
-
float intervalTime;
|
219
|
-
//次の弾が出るまでの時間
|
220
|
-
public float nextTime;
|
221
|
-
|
222
|
-
private void Start(){
|
223
|
-
intervalTime = 0;
|
224
|
-
nextTime = 0.1f;
|
225
|
-
}
|
226
|
-
|
227
|
-
private void Update()
|
228
|
-
{
|
229
|
-
Vector3 pos = transform.position;
|
230
|
-
|
231
|
-
pos.z += speed;//プレイヤーが自動で前方に移動
|
232
|
-
pos.x += _joystick.Position.x * SPEED;
|
233
|
-
pos.y += _joystick.Position.y * SPEED;
|
234
|
-
|
235
|
-
//最終的なプレイヤーの移動全般
|
236
|
-
transform.position = pos;
|
237
|
-
|
238
|
-
//弾間隔調整のために時間を増加
|
239
|
-
intervalTime += Time.deltaTime;
|
240
|
-
}
|
241
|
-
|
242
|
-
public void BulletButton(){
|
243
|
-
if (intervalTime >= nextTime) {
|
244
|
-
intervalTime = 0.0f;
|
245
|
-
Instantiate(beam, new Vector3(transform.position.x, transform.position.y, transform.position.z), Quaternion.identity);
|
246
|
-
}
|
247
|
-
}
|
248
|
-
}
|
249
197
|
```
|