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

質問編集履歴

3

情報の追加

2020/05/18 09:33

投稿

unity_user_a
unity_user_a

スコア23

title CHANGED
File without changes
body CHANGED
@@ -153,10 +153,88 @@
153
153
  追記(5/17)
154
154
  PlayerBulletのprivate bool isLeft の = true; を消したところ、弾が前方(左方向)に飛んで行く様になりました。当然かも知れませんが、プレイヤーの向きが変わっても左に飛んで行きます。
155
155
 
156
+ 追記(5/18)
156
- まだ理解浅く一言二言アドバスを頂いただけで、そこから自分解決まで至るこが出来なもあります。
157
+ PlayerBulletとBulletのコードは、以前投稿した「プレイヤー弾プレイヤーの後ろから出てプレヤーが押される」で、回答として頂いたコードをもとにしています。「isLeft 仮の変数す」といった所々の書き込みそのまま残してあります。
157
- 簡単なもので良いので、スクリプト(コード)の例を示していただけるとありがたいです。
158
158
 
159
+ 追記_2
160
+ 頂いたアドバイスをもとに下記まで進みました。
161
+ ```ここに言語を入力
162
+ private float GetXSpeed()
163
+ {
164
+ float horizontalKey = Input.GetAxis("Horizontal");
165
+ float xSpeed = 0.0f;
166
+ if (horizontalKey > 0)
167
+ {
168
+ transform.localScale = new Vector3(1, 1, 1);
169
+ isRun = true;
170
+ dashTime += Time.deltaTime;
171
+ xSpeed = speed;
172
+ isLeft = true; //New
173
+ }
174
+ else if (horizontalKey < 0)
175
+ {
176
+ transform.localScale = new Vector3(-1, 1, 1);
177
+ isRun = true;
178
+ dashTime += Time.deltaTime;
179
+ xSpeed = -speed;
180
+ isLeft = false; //New
181
+ }
182
+ else
183
+ {
184
+ isRun = false;
185
+ xSpeed = 0.0f;
186
+ dashTime = 0.0f;
187
+ }
188
+ ```
159
- 私自身の成長・学習のため考えれば、そこでし頂かない方が良いかも知れませんが、今頂いていアドバイスだけでは解決至れせん
189
+ ※プライベート変数をまとめ部分「public bool isLeft = false;」も追加しあり
160
190
 
191
+ ```ここに言語を入力
192
+ using System.Collections;
193
+ using System.Collections.Generic;
194
+ using UnityEngine;
195
+
196
+ public class PlayerBullet : MonoBehaviour
197
+ {
198
+ // InspectorでPrefab化したBulletを指定する
199
+ [SerializeField]
200
+ public GameObject bullet;
201
+ public GameObject player; //New
202
+
203
+ private bool isLeft;
204
+
205
+ // ユーザーがどちらを向いているか
206
+ void Start()
207
+ {
208
+ isLeft = player.GetComponent<Player>().isLeft;
209
+ }
210
+
211
+ void Update()
212
+ {
213
+ // 弾オブジェクトを生成して飛ばす関数を呼び出す
214
+ ShotAction();
215
+ }
216
+
217
+ void ShotAction()
218
+ {
219
+ Vector3 offset = new Vector3(1.0f, 0.0f, 0.0f);
220
+
161
- 追記(5/18)
221
+ //New
222
+ if(isLeft == true)
223
+ {
224
+
225
+ }
226
+ if(isLeft == false)
227
+ {
228
+
229
+ }
230
+
231
+ if (Input.GetButtonDown("Fire1"))
232
+ {
233
+ // Bulletコンポーネントがアタッチしている前提
162
- PlayerBulletとBulletのコードは、以前投稿した「プレイヤー弾がプレイヤーの後ろから出て、プレイヤーが押される」で、回答として頂いたコードをもとにしています。「isLeft は仮の変数です」といった所々の書き込みもそのまま残してあります。
234
+ var bulletObj = Instantiate(bullet, transform.position + offset, transform.rotation);
235
+ bulletObj.GetComponent<Bullet>().SetDirection(isLeft);
236
+ }
237
+ }
238
+ }
239
+ ```
240
+ あと少しだと思うのですが、PlayerBulletのコードで ==trueと==false の中身をどう書いたら良いのかで悩んでいます。

2

情報の追加

2020/05/18 09:33

投稿

unity_user_a
unity_user_a

スコア23

title CHANGED
File without changes
body CHANGED
@@ -156,4 +156,7 @@
156
156
  まだ理解が浅く、一言二言アドバイスを頂いただけでは、そこから自分で解決まで至ることが出来ない時もあります。
157
157
  簡単なもので良いので、スクリプト(コード)の例を示していただけるとありがたいです。
158
158
 
159
- 私自身の成長・学習のためを考えれば、そこまでして頂かない方が良いかも知れませんが、今頂いているアドバイスだけでは解決に至れていません。
159
+ 私自身の成長・学習のためを考えれば、そこまでして頂かない方が良いかも知れませんが、今頂いているアドバイスだけでは解決に至れていません。
160
+
161
+ 追記(5/18)
162
+ PlayerBulletとBulletのコードは、以前投稿した「プレイヤー弾がプレイヤーの後ろから出て、プレイヤーが押される」で、回答として頂いたコードをもとにしています。「isLeft は仮の変数です」といった所々の書き込みもそのまま残してあります。

1

情報の追加

2020/05/18 04:41

投稿

unity_user_a
unity_user_a

スコア23

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- 「プレイヤーの弾が後ろに飛んで行く」、「プレイヤーの向きが変わっても、弾の向きが変わらない」のを修正したいです。
1
+ Unity初心者です。「プレイヤーの弾が後ろに飛んで行く」、「プレイヤーの向きが変わっても、弾の向きが変わらない」のを修正したいです。
2
2
 
3
3
  ![イメージ説明](fbd0426101251fa9546b8d842ba07b35.jpeg)
4
4
  ![イメージ説明](bd46ac97cffdddb18a326617f4841a27.jpeg)
@@ -148,4 +148,12 @@
148
148
  }
149
149
  }
150
150
  ```
151
- 弾はプレイヤーの子オブジェクトにせず、Project上にあるPrefabをInspectorから指定しています。
151
+ 弾はプレイヤーの子オブジェクトにせず、Project上にあるPrefabをInspectorから指定しています。
152
+
153
+ 追記(5/17)
154
+ PlayerBulletのprivate bool isLeft の = true; を消したところ、弾が前方(左方向)に飛んで行く様になりました。当然かも知れませんが、プレイヤーの向きが変わっても左に飛んで行きます。
155
+
156
+ まだ理解が浅く、一言二言アドバイスを頂いただけでは、そこから自分で解決まで至ることが出来ない時もあります。
157
+ 簡単なもので良いので、スクリプト(コード)の例を示していただけるとありがたいです。
158
+
159
+ 私自身の成長・学習のためを考えれば、そこまでして頂かない方が良いかも知れませんが、今頂いているアドバイスだけでは解決に至れていません。