From cee04f5da38b71eee894bd1ed45c8a7b42b955f1 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Thu, 16 Feb 2023 13:07:14 +0300 Subject: [PATCH] feat: 3D Box Area ColliderTriggerArea & GroundTriggerArea Added --- Runtime/Collider/BoxColliderTriggerArea.cs | 22 +++++++++++++++++++ .../Collider/BoxColliderTriggerArea.cs.meta | 11 ++++++++++ .../Collider/Ground/BoxGroundTriggerArea.cs | 4 ++++ 3 files changed, 37 insertions(+) create mode 100644 Runtime/Collider/BoxColliderTriggerArea.cs create mode 100644 Runtime/Collider/BoxColliderTriggerArea.cs.meta create mode 100644 Runtime/Collider/Ground/BoxGroundTriggerArea.cs diff --git a/Runtime/Collider/BoxColliderTriggerArea.cs b/Runtime/Collider/BoxColliderTriggerArea.cs new file mode 100644 index 0000000..8f467dc --- /dev/null +++ b/Runtime/Collider/BoxColliderTriggerArea.cs @@ -0,0 +1,22 @@ +using UnityEngine; + +namespace Syntriax.Modules.Trigger +{ + public class BoxColliderTriggerArea : ColliderTriggerAreaBase + { + protected override int TriggerCount + => Physics.OverlapBoxNonAlloc(transform.position, transform.localScale * .5f, nonAllocResults, transform.rotation, ColliderMask); + +#if UNITY_EDITOR + private void OnDrawGizmosSelected() + { + if (UnityEditor.EditorApplication.isPlaying) + Gizmos.color = previousTriggerCount > 0 ? Color.green : Color.red; + else + Gizmos.color = TriggerCount > 0 ? Color.green : Color.red; + + Gizmos.DrawWireCube(transform.position, transform.lossyScale); + } +#endif + } +} diff --git a/Runtime/Collider/BoxColliderTriggerArea.cs.meta b/Runtime/Collider/BoxColliderTriggerArea.cs.meta new file mode 100644 index 0000000..a734919 --- /dev/null +++ b/Runtime/Collider/BoxColliderTriggerArea.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 850a555be97ed9b4a86942b21a6a25e4 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Runtime/Collider/Ground/BoxGroundTriggerArea.cs b/Runtime/Collider/Ground/BoxGroundTriggerArea.cs new file mode 100644 index 0000000..0eb3608 --- /dev/null +++ b/Runtime/Collider/Ground/BoxGroundTriggerArea.cs @@ -0,0 +1,4 @@ +namespace Syntriax.Modules.Trigger +{ + public class BoxGroundTriggerArea : BoxColliderTriggerArea, IGroundTriggerArea { } +}