前提・実現したいこと
当方プログラミング初心者で、
UNITYで2Dのシューティングゲームを作っているのですが、
スペースを押して、玉の発射を「上向き」ではなく「横向き」に発射させたいのですが
このコードの何処を変更すれば良いか分かりませんでした。教えて頂けたら幸いです。
該当のソースコード
C#
1using UnityEngine; 2using System.Collections; 3 4public class RocketController : MonoBehaviour { 5 6 public GameObject bulletPrefab; 7 8 void Update () { 9 if (Input.GetKey (KeyCode.LeftArrow)) { 10 transform.Translate (-0.1f, 0, 0); 11 } 12 if (Input.GetKey (KeyCode.RightArrow)) { 13 transform.Translate ( 0.1f, 0, 0); 14 } 15 if (Input.GetKeyDown (KeyCode.Space)) { 16 Instantiate (bulletPrefab, transform.position, Quaternion.identity); 17 } 18 } 19}
C#
1using UnityEngine; 2using System.Collections; 3 4public class BulletController : MonoBehaviour 5{ 6 void Update() 7 { 8 transform.Translate(0, 0.2f, 0); 9 10 if (transform.position.y > 5) 11 { 12 Destroy(gameObject); 13 } 14 } 15}
補足情報(FW/ツールのバージョンなど)
Unity
玉(bulletPrefab)にもスクリプトが付いているかと思われます。
そのスクリプトの内容によって回答が異なる可能性があるので、そちらも掲載してください。
なお、コードを掲載する際は見やすくするため ``` コードの内容 ``` という形で記入してください。
※「<code> コードの挿入」ボタンを押すと出てきます。
http://s-takumi.hatenablog.com/entry/2014/05/18/000959
ソースコードの変更を行いました。
親切にご回答ご指摘ありがとうございますm(_ _)m
まだbulletPrefabのアタッチされているスクリプトが掲載されてないようですが、
Instantiate (bulletPrefab, transform.position, Quaternion.Euler(0f, 0f, 90f));
でインスタンス生成時の向きは変更できます。
そのゲームの動作を見ないと何とも言えませんが、Kapustin様の意見と同じでbulletPrefubに何かスクリプトが付いている可能性が高いです。
しかし、もしPrefubにスクリプトをアタッチしていない場合は、物理エンジンの重力によって弾が進んでいる可能性が挙げられます。
bulletPrefubの内容を確認した上でわからないようでしたら、現時点での弾の挙動について書いていただけると参考になります。
お二方ご回答ありがとうございます。
Kapustinさんのソースコードを参考にさせて頂いたら、
左方向に玉を飛ばすことが出来ました!
親切にありがとうございますm(_ _)m
最近teratailの回答率が90.09%になってしまいました、何とか90以上を維持していただくためにも、回答は自己解決として書いてくださいm(//m//)m
あなたの回答
tips
プレビュー