前提・実現したいこと
常に真横に発射され続けている銃弾(Bullet)を、「↑(上向きの矢印)」ボタン(UpButton)を押せば上向きの軌道・方向に変えられるように、銃弾とボタンのスクリプトを設定したい。
発生している問題・エラーメッセージ
ボタンに効力を持たせるためにコードをアタッチしなければならないのだが、そうした場合ボタン自身がfloat Speed=60で進んでしまう。ボタンを押した場合、ボタンは動かずに、銃弾のみがボタンの効果(public void UpButtonDown())を受けるようにしたい。またボタンを押してない時は常にそのまま(真横に)銃弾が進むようにしたい。
ButtonのInspecterの画像は以下の通りです。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class BulletController : MonoBehaviour 7{ 8 public GameObject Bullet; 9 float speed = 60.0f; 10 11 void Update() 12 { 13 transform.position += new Vector3(this.speed * Time.deltaTime, 0f, 0f); 14 } 15 public void UpButtonDown() 16 { 17 transform.position += new Vector3(this.speed * Time.deltaTime, 0.2f, 0f); 18 } 19 private void OnCollisionEnter2D(Collision2D collision) 20 { 21 if (collision.gameObject.tag == "Building") 22 { 23 Destroy(this.gameObject); 24 } 25 if (collision.gameObject.tag == "Enemy") 26 { 27 Destroy(this.gameObject); 28 } 29 } 30}
試したこと
別の銃弾を作成し、別のコードで、別のPrefabで上向きの銃弾を作ってボタンにアタッチしてみたのですが、その場合だと同時に横(真横)向きの銃弾も発射されてしまうので、なんとか1つの銃弾を、ボタンにて自由に上下に動かせるようにしたいです。
補足情報(FW/ツールのバージョンなど)
Unity 2019 3.0 f5