質問するログイン新規登録

質問編集履歴

2

すみませんでした。画像を添付し忘れていました。

2019/01/09 06:02

投稿

jury
jury

スコア18

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,8 @@
4
4
  ###解決したいこと
5
5
  現在、以下画像のようにシューティングゲームを作成したいと思っています。
6
6
  左下のUIが中央の青いオブジェクト(プレイヤー)を動かすジョイスティックで、右下のUIがプレイヤーから弾を発射させるボタンです。
7
+ ![イメージ説明](9e16fcaa951a4f4785318286e30f9faf.png)
8
+
7
9
  スティックで移動させながら弾を発射出来るようにしたのですが、発射ボタンを押すとタップ感知が反応してしまい、ジョイスティックが右側に持っていかれてしまいプレイヤーの挙動がおかしなことになってしまいます。
8
10
 
9
11
  ~~移動や発射自体はそれぞれ問題無くうごくのですが、両立させる方法が中々思いつきません…

1

試してみたことを追記しました。

2019/01/09 06:02

投稿

jury
jury

スコア18

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
- 二つ目が発射ボタンにアタッチしてあるスクリプトです。(buttonUIにスクリ入れてる感じです)
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
  ```