n_Way弾を実装しようとしましたが、コードに誤りがあるのか自爆してしまいます | Unity Forum | Tech Stadium Forum

n_Way弾を実装しようとしましたが、...
 
通知
すべてクリア

n_Way弾を実装しようとしましたが、コードに誤りがあるのか自爆してしまいます  

  RSS

Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/09/2020 2:08 pm  

n_Way弾を実装しようとしましたが、コードに誤りがあるのか自爆してしまいます。


引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
04/09/2020 2:25 pm  

Shell同士が当たって爆発し、その爆発でダメージを喰らっていたみたいなので、Shell同士の当たり判定を無くしましょう。

Shell」レイヤーを作りそれをShellに設定。
「Edit→ProjectSetting→Physics」からShell同士のチェックを外してください。

プロジェクトを確認してみたところ、Shellという名前のレイヤーと当たり判定におけるShell同士のチェックは外れていたので、レイヤーの設定し忘れかもしれません。 


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/09/2020 2:25 pm  

レイヤーを変更したところ自爆はなくなりましたが、
角度を変更して発射することは出来ず、複数個まとめて同じ方向に発射されてしまいました。
色々ソースを漁ったのですが参考にして変更してみるとエラーが出たりまた自爆したりします。

This post was modified 4年前 by Student

返信引用
Teacher
(@admin)
メンバー Admin
結合: 5年前
投稿: 1318
04/09/2020 2:27 pm  

確認してみましたが、今の状態だと別々の角度に発射すること自体ができていませんでした。

弾の発射角度は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メソッドのスクショを貼り付けておきます。
自分なりに理解したら、コピーするなりさらに編集を加えるなりしてください!
また自爆してしまった場合は、もう一度レイヤーが設定されているか確認してください。


返信引用
Student
(@student)
メンバー Moderator
結合: 4年前
投稿: 1351
04/09/2020 2:27 pm  

修正してみたところ、ちゃんと3-Way弾になりました。ありがとうございます。


返信引用
共有:
タイトルとURLをコピーしました