のぼるゲーム開発備忘録

ゲーム開発のプログラマーです。ゲーム開発関連、調べた内容をアップしていきます。Unityを使用して個人開発を行っています。

【Unity】【TopDownEngine】【不具合】攻撃(Projectile)が当たらない

f:id:ikeball:20200724092647p:plain

はじめに

Projecttileで攻撃があたらない状態になりました。

TopDown Engineを使用していて、はまった情報を残していきます。
※最新版では問題が解消されている可能性があります。

確認環境

Unity 2019.4.3f1

Projectile攻撃が当たらない

症状

プレイヤー、敵で同じ武器を使用し戦っていた際、しばらくすると攻撃が当たらない状態になりました。

f:id:ikeball:20210718001140g:plain

原因

確認したところDamageOnTouch IgnoredGameObjectsの登録が増え続けていました。IgnoredGameObjectsに登録されたオブジェクトは当たらないようになります。

※当たり判定のレイヤー設定は正しい設定でした。

 

f:id:ikeball:20210717234213p:plain

ProjectileのOnEnableにて、InitialInvulnerabilityDurationの値が入っていないと初期化されないようになっています。InitialInvulnerability()の中でのみIgnoredGameObjectsがクリアされるようになっています。
※InitialInvulnerabilityDurationは「弾が破壊されるようになるまでの時間」です。

f:id:ikeball:20210718023359p:plain

条件

確認した条件は3つです。
①プレイヤー、敵側で同じ武器を使用している。
②MMSimpleObjectPoolerを有効にしている。
③ProjectileのInitialInvulnerabilityDurationの設定が0になっている。

※SpaceCombatProjectileWeaponはProjectileWeaponを拡張したクラス

f:id:ikeball:20210718013116p:plain

※HomingProjectileはProjectileWeaponを拡張したクラス

f:id:ikeball:20210718022500p:plain

対応方法

ProjectileのInitialInvulnerabilityDurationの設定に0より大きい値をいれるです。

f:id:ikeball:20210718030720p:plain

無事IgnoredGameObjectsの増加が止まりました。

f:id:ikeball:20210718031543p:plain

おわりに

需要は少ないと思いますが、自身への備忘録として不具合情報も備忘録として残していきたいと思います。不具合解決の手がかりとなることがあれば幸いです。
ご確認頂きありがとう御座いました。