n_Way弾を実装しようとしましたが、コードに誤りがあるのか自爆してしまいます。
Shell同士が当たって爆発し、その爆発でダメージを喰らっていたみたいなので、Shell同士の当たり判定を無くしましょう。
「Shell」レイヤーを作りそれをShellに設定。
「Edit→ProjectSetting→Physics」からShell同士のチェックを外してください。
プロジェクトを確認してみたところ、Shellという名前のレイヤーと当たり判定におけるShell同士のチェックは外れていたので、レイヤーの設定し忘れかもしれません。
レイヤーを変更したところ自爆はなくなりましたが、
角度を変更して発射することは出来ず、複数個まとめて同じ方向に発射されてしまいました。
色々ソースを漁ったのですが参考にして変更してみるとエラーが出たりまた自爆したりします。
確認してみましたが、今の状態だと別々の角度に発射すること自体ができていませんでした。
弾の発射角度は102行目のshellInstance.velocity = m_CurrentLaunchForce * m_FireTransform.forward;の部分で設定されているので、m_FireTransformの角度を調整しなければなりません。
なので、localAngleの値は m_FireTransform.localEulerAnglesに代入するのがベストでしょう。
また、そのまま代入した場合でも、localAngleの値が小さいのでほとんど変化がありません(0.4等の値でした)
とりあえず調整をするなら、Mathf.Cos(m_NWay) に50等の数字をかけてあげると良いと思います。
Tankの子オブジェクトであるFireTransformオブジェクトの角度を変更してみたらわかりますが、z軸を回転させても発射方向は変わりません。
縦に広げたい場合はlocalAngle.xを、横に広げたい場合はlocalAngle.yの値を変更するようにしましょう。
参考程度に、私が編集したFireAngleメソッドのスクショを貼り付けておきます。
自分なりに理解したら、コピーするなりさらに編集を加えるなりしてください!
また自爆してしまった場合は、もう一度レイヤーが設定されているか確認してください。
修正してみたところ、ちゃんと3-Way弾になりました。ありがとうございます。