Besiegeの爆発に関するmask値
ヒットしたときInterfaceでOnExplodeを呼び出して、mask値でどんな判定を与えたか管理している。
code:sample.cs
//interface IExplosionEffect
public class HogeComponent : MonoBehaviour, IExplosionEffect
{
public bool OnExplode(float power, float upPower, float torquePower, Vector3 explosionPos, float radius, int mask)
{
if (!StatMaster.levelSimulating)
{
return false;
}
if ((mask & 0x20) != 0)
{
//ここにやりたい処理
return true;
}
return false;
}
}
見つけれたマスク値
mask 1 0000 0001 GateDoor
mask 2 0000 0010 見つけれてない(未使用?)
mask 4 0000 0100 EnemyAISimple Die
mask 8 0000 1000 ReduceBreakForceOnImpact
mask 0x10 0001 0000 FireTag Fire
mask 0x20 0010 0000 Explode
mask 0x40 0100 0000 SimpleBirdAI Explode //ACMのチャフに利用している、つまり鳥も殺せる?
mask 0x80 1000 0000 BreakOnForce BreakObj
例:ProjectileScript
HandleCollisionOrTrigger mask 32 0010 0000 0x20 //爆発の伝搬
例:CannonBallExplosion
ExplosionForce() mask 237 1110 1101 0xED //燃やす以外に影響