Closed6
Low Poly Shooter Pack
Infima Games 各種リンク
Demo
Document
discord で アセットを買った時のID共有すると認証してもらえるので、そこから入手できる
仕組み
まずは Low Poly Shooter Pack 側が何処で当たり判定出してるか。
武器の Prefabs にアタッチされている Weapon.cs
をみると Fire
関数がありそこで projectile
を生成して飛ばしている。
Prefabs の Projectaile
ディレクトリを見ると中には各種武器の弾の prefabs があり Projectile.cs
がアタッチされていることがわかる。
Projectile.cs
内部には OnCollisionEnter
があり、ここで当たった時の判定を追加できそう。
EmerldAI 側はここ
コード修正
Projectile.cs
の OnCollisionEnter
関数の最後に下記を加えると AI にダメージを与えられることを確認
using EmeraldAI;
//~~中略~~
[Tooltip("Damage value for AI")]
public float hitDamage;
//~~中略~~
//Collides with "Respawn" tag
if (collision.transform.tag == "Respawn")
{
int hitDamage = 10;
if (collision.transform.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>() != null)
{
EmeraldAI.EmeraldAISystem EmeraldComponent = collision.transform.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>();
EmeraldComponent.Damage( hitDamage, EmeraldAI.EmeraldAISystem.TargetType.Player, collision.transform, 400);
}
//Destroy bullet object
Destroy(gameObject);
}
EmeraldAI.EmeraldAISystem.TargetType.AI
にすると攻撃を当てた側がバグる
RPGやグレネードは下記で変更
ProjectileScript.cs
& GrenadeScript.cs
using EmeraldAI;
//~~中略~~
[Tooltip("Damage value for AI")]
public float hitDamage;
//~~中略~~
if (hit.GetComponent<Collider>().tag == "Respawn")
{
if (hit.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>() != null)
{
EmeraldAI.EmeraldAISystem EmeraldComponent = hit.gameObject.GetComponent<EmeraldAI.EmeraldAISystem>();
EmeraldComponent.Damage( hitDamage, EmeraldAI.EmeraldAISystem.TargetType.AI, player.transform, 400);
}
}
Reload
Weapon のリロード時にはアニメーションの Event
で OnAmmunitionFill
が呼ばれているので、主にここの書き換えで弾薬管理実装可能。
このスクラップは2022/06/27にクローズされました