Unity/Unity 리서치
Enum을 활용한 Bit연산자 Flag
lipnus
2023. 1. 24. 17:33
반응형
DamageOnTouch.cs
[Flags]
public enum TriggerAndCollisionMask
{
IgnoreAll = 0,
OnTriggerEnter = 1 << 0,
OnTriggerStay = 1 << 1,
OnTriggerEnter2D = 1 << 6,
OnTriggerStay2D = 1 << 7,
All_3D = OnTriggerEnter | OnTriggerStay,
All_2D = OnTriggerEnter2D | OnTriggerStay2D,
All = All_3D | All_2D
}
public TriggerAndCollisionMask TriggerFilter = AllowedTriggerCallbacks;
// ...
public virtual void OnTriggerStay(Collider collider)
{
if (0 == (TriggerFilter & TriggerAndCollisionMask.OnTriggerStay)) return;
Colliding(collider.gameObject);
}
public virtual void OnTriggerEnter(Collider collider)
{
if (0 == (TriggerFilter & TriggerAndCollisionMask.OnTriggerEnter)) return;
Colliding(collider.gameObject);
}
반응형