前提・実現したいこと
FPSの一人称視点で画面中央からまっすぐに位置をぶれずに弾を飛ばしたい。
発生している問題・エラーメッセージ
左クリックするで弾を発射すると画面の右、左、真ん中付近と発射位置が変わってしまいます。 メインカメラに空のオブジェクトを子にしてそこから発射するようにしています。 コードに何を足したら弾の発射位置がぶれずに固定されるのでしょうか?
該当のソースコード
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Shoot : MonoBehaviour { public GameObject Bullet; Rigidbody rb_bullet; public float thrust; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (Input.GetMouseButtonDown(0)) { rb_bullet = Instantiate(Bullet, transform.position, transform.rotation).GetComponent<Rigidbody>(); rb_bullet.AddForce(transform.forward * thrust, ForceMode.Impulse); } } }
試したこと
当初はメインカメラに直接コードを貼り付けていたのですが、同じ挙動だったので、他のやり方を調べていると、今の空のオブジェクトを子にして飛ばすやり方が大半だったので変えてみましたが、何も変わりませんでした。
補足情報(FW/ツールのバージョンなど)
すみません。書き方がややこしかったので動画撮影しました。
こんな感じになってしまいます。
https://youtu.be/Nr5VvUZ43_A
右側に出ている弾は何が原因なのでしょうか?
真ん中の薄暗い半透明の丸は発射するコードを貼り付けているオブジェクトです。
回答1件
あなたの回答
tips
プレビュー