前提・実現したいこと
Fpsゲームでプレイヤーの向いている方向に球を発射したいと思っています。
発生している問題
当たり判定が機能しない。
発射した後プレイヤーの体の向きを変えると発射した玉も動いてしまう。(発射後に体の向きを変えると発射された球も右に動く)
該当のソースコード
このジェネレーターで球を作る
c#
1public class bulletGaneretor : MonoBehaviour 2{ 3 [SerializeField] GameObject bullet; 4 GameObject player; 5 // Start is called before the first frame update 6 void Start() 7 { 8 player = GameObject.Find("Player"); 9 } 10 11 // Update is called once per frame 12 void Update() 13 { 14 if (Input.GetMouseButtonDown(1)) 15 { 16 if(ItemManager.right == true) 17 { 18 GameObject bullet_Instance = Instantiate(bullet) as GameObject; 19 bullet_Instance.transform.parent = player.transform; 20 bullet_Instance.transform.localPosition = new Vector3(0, 0, 2); 21 } 22 } 23 } 24}
このscriptで球を動かす
c#
1public class bulletController : MonoBehaviour 2{ 3 GameObject player; 4 float z; 5 Rigidbody rb; 6 // Start is called before the first frame update 7 void Start() 8 { 9 rb = GetComponent<Rigidbody>(); 10 player = GameObject.Find("Player"); 11 z = 0; 12 } 13 14 // Update is called once per frame 15 void Update() 16 { 17 z++; 18 transform.localPosition = new Vector3(0, 0, z); 19 } 20 21//追記 22 private void OnCollisionEnter(Collision collision) 23 { 24 Destroy(this.gameObject); 25 } 26}
補足
ItemManagerのright変数には武器を持ているかが入る
全てのゲームオブジェクトにコライダーはついています
弾をplayerから出したいのでplayerの子要素にしてローカル座標で場所を指定するために子にしています。
回答1件
あなたの回答
tips
プレビュー