キャラクターオブジェクトの子に付けたempty objectから弾を発射するも、発射位置が子に追従せずに最初に設定した位置から生成されてしまうので調べてみた。
ソースは以下。
void Update () {
if (Input.GetKeyDown("space"))
{
GameObject runcherBullet = GameObject.Instantiate(bullet) as GameObject; //runcherbulletにbulletのインスタンスを格納
runcherBullet.GetComponent<Rigidbody>().velocity = transform.forward * bulletSpeed; //アタッチしているオブジェクトの前方にbullet speedの速さで発射
}
}
上記のempty object(runcherbullet)の座標を調べてみるとLocal座標で見るとキャラの位置が変わっても座標が固定になっているので、ワールド座標にするために下記のように修正。
void Update () {
if (Input.GetKeyDown("space"))
{
GameObject runcherBullet = GameObject.Instantiate(bullet) as GameObject; //runcherbulletにbulletのインスタンスを格納
runcherBullet.GetComponent<Rigidbody>().velocity = transform.forward * bulletSpeed; //アタッチしているオブジェクトの前方にbullet speedの速さで発射
runcherBullet.transform.position = transform.position;
}
}