趣味のゲーム開発 vol.27
今回も引き続きソースの整理をやっていきたいと思います。
各スクリプトに散在していたタグの定数をまとめたGUtilクラスを作成しました。
SceneView上に配置しなくても呼び出せるようです。
インスタンスは生成されている、ということですかね?
敵を操作しているクラスに、銃で撃たれたアクションを記述しました。
これは単純にOnCollitionEnter2Dで良いかと思い、オーバーライドしました。
挙動的には良さそうですが、別の問題が発生。
以前から気になっていたのですが、弾がスムーズに出ません。
キーを押しても反応する時としない時があります。
また、弾オブジェクトのコライダーをIsTriggerにしないと、なんかプレイヤーが地面に食い込みます。
・・・弾と衝突してしまっているのでしょうか?
デバッグしたところ、プレイヤーとの衝突によりずれてしまっていました。
また、弾があらぬ方向に飛んでいく問題が発生しましたが、こちらはZ軸の固定を忘れていたために発生した現象でした。
調べていた感じ、やはりUpdateとFixedUpdateの違いでミスしていたようです。
http://mediamonster.blog.fc2.com/blog-entry-22.html
InputはUpdate・・・
とりあえず、以下の通り修正しました。
・弾丸のコライダーはIsTrigger
・弾丸のZ軸を固定
・弾丸のBodyTypeをKinematicに
・弾丸のCollisionDetectionをContinuousにし、飛翔途中のあたり判定も有効に
・弾丸のInterpolateをInterpolateにし、スムージングをかける
・敵の操作クラスでOnTriggerにてダメージ処理を定義
これで、少しはマシな挙動になりました。
しかし、プレイヤーが前方に移動しているときに、弾丸がかき消されてしまう不具合が残っています。
次回はこちらを修正したいと思います。
ではまた!
この記事が気に入ったらサポートをしてみませんか?