From 4f2217bb63ee3584a841e2f8c7d9e484d816ec33 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Mon, 14 Nov 2022 12:15:32 +0300 Subject: [PATCH] Files Moved from Movement --- Box2DColliderTrigger.cs | 25 +++++++++++++++++++++++++ Box2DColliderTrigger.cs.meta | 11 +++++++++++ Ground.meta | 8 ++++++++ Ground/Box2DGroundTrigger.cs | 4 ++++ Ground/Box2DGroundTrigger.cs.meta | 11 +++++++++++ Ground/IGroundTrigger.cs | 4 ++++ Ground/IGroundTrigger.cs.meta | 11 +++++++++++ IColliderCheckExtensions.cs | 8 ++++++++ IColliderCheckExtensions.cs.meta | 11 +++++++++++ IColliderTrigger.cs | 9 +++++++++ IColliderTrigger.cs.meta | 11 +++++++++++ ITrigger.cs | 10 ++++++++++ ITrigger.cs.meta | 11 +++++++++++ README.md.meta | 7 +++++++ Trigger.cs | 25 +++++++++++++++++++++++++ Trigger.cs.meta | 11 +++++++++++ 16 files changed, 177 insertions(+) create mode 100644 Box2DColliderTrigger.cs create mode 100644 Box2DColliderTrigger.cs.meta create mode 100644 Ground.meta create mode 100644 Ground/Box2DGroundTrigger.cs create mode 100644 Ground/Box2DGroundTrigger.cs.meta create mode 100644 Ground/IGroundTrigger.cs create mode 100644 Ground/IGroundTrigger.cs.meta create mode 100644 IColliderCheckExtensions.cs create mode 100644 IColliderCheckExtensions.cs.meta create mode 100644 IColliderTrigger.cs create mode 100644 IColliderTrigger.cs.meta create mode 100644 ITrigger.cs create mode 100644 ITrigger.cs.meta create mode 100644 README.md.meta create mode 100644 Trigger.cs create mode 100644 Trigger.cs.meta diff --git a/Box2DColliderTrigger.cs b/Box2DColliderTrigger.cs new file mode 100644 index 0000000..849ae66 --- /dev/null +++ b/Box2DColliderTrigger.cs @@ -0,0 +1,25 @@ +using UnityEngine; + +namespace Syntriax.Modules.Trigger +{ + + public class Box2DColliderTrigger : Trigger, IColliderTrigger + { + private Collider2D[] results = new Collider2D[8]; + + public LayerMask ColliderMask { get => colliderMask; set => colliderMask = value; } + [SerializeField] private LayerMask colliderMask = 0; + + protected void FixedUpdate() + => IsTrigerred = Physics2D.OverlapBoxNonAlloc(transform.position, transform.localScale, 0, results, ColliderMask) > 0; + + +#if UNITY_EDITOR + private void OnDrawGizmosSelected() + { + Gizmos.color = IsTrigerred ? Color.green : Color.red; + Gizmos.DrawWireCube(transform.position, transform.lossyScale); + } +#endif + } +} diff --git a/Box2DColliderTrigger.cs.meta b/Box2DColliderTrigger.cs.meta new file mode 100644 index 0000000..676047d --- /dev/null +++ b/Box2DColliderTrigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 20a6baf9a256917448a4d7ad09d0c51a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Ground.meta b/Ground.meta new file mode 100644 index 0000000..ba6628e --- /dev/null +++ b/Ground.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8747cc51a59e7a14fae4687c7136d15b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Ground/Box2DGroundTrigger.cs b/Ground/Box2DGroundTrigger.cs new file mode 100644 index 0000000..8deb2c8 --- /dev/null +++ b/Ground/Box2DGroundTrigger.cs @@ -0,0 +1,4 @@ +namespace Syntriax.Modules.Trigger +{ + public class Box2DGroundTrigger : Box2DColliderTrigger, IGroundTrigger { } +} diff --git a/Ground/Box2DGroundTrigger.cs.meta b/Ground/Box2DGroundTrigger.cs.meta new file mode 100644 index 0000000..1a4cee5 --- /dev/null +++ b/Ground/Box2DGroundTrigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7804f3e8384c7a54482f585b4f43264a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Ground/IGroundTrigger.cs b/Ground/IGroundTrigger.cs new file mode 100644 index 0000000..687ae4b --- /dev/null +++ b/Ground/IGroundTrigger.cs @@ -0,0 +1,4 @@ +namespace Syntriax.Modules.Trigger +{ + public interface IGroundTrigger : IColliderTrigger { } +} diff --git a/Ground/IGroundTrigger.cs.meta b/Ground/IGroundTrigger.cs.meta new file mode 100644 index 0000000..348f8cc --- /dev/null +++ b/Ground/IGroundTrigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 8dc876763de82b74cb9a05685d57e841 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/IColliderCheckExtensions.cs b/IColliderCheckExtensions.cs new file mode 100644 index 0000000..e9b065f --- /dev/null +++ b/IColliderCheckExtensions.cs @@ -0,0 +1,8 @@ +namespace Syntriax.Modules.Trigger +{ + public static class IColliderTriggerExtensions + { + public static bool IsTriggeredNullChecked(this IColliderTrigger colliderCheck) + => colliderCheck == null ? true : colliderCheck.IsTrigerred; + } +} diff --git a/IColliderCheckExtensions.cs.meta b/IColliderCheckExtensions.cs.meta new file mode 100644 index 0000000..42d0c67 --- /dev/null +++ b/IColliderCheckExtensions.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d1b41d4e3ee5ce24eaef42d5c8fc8c3a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/IColliderTrigger.cs b/IColliderTrigger.cs new file mode 100644 index 0000000..269c6f7 --- /dev/null +++ b/IColliderTrigger.cs @@ -0,0 +1,9 @@ +using UnityEngine; + +namespace Syntriax.Modules.Trigger +{ + public interface IColliderTrigger : ITrigger + { + LayerMask ColliderMask { get; set; } + } +} diff --git a/IColliderTrigger.cs.meta b/IColliderTrigger.cs.meta new file mode 100644 index 0000000..494474c --- /dev/null +++ b/IColliderTrigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e199ccade2250b646abfd859e4aa1e7a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ITrigger.cs b/ITrigger.cs new file mode 100644 index 0000000..0fbde29 --- /dev/null +++ b/ITrigger.cs @@ -0,0 +1,10 @@ +using System; + +namespace Syntriax.Modules.Trigger +{ + public interface ITrigger + { + bool IsTrigerred { get; } + Action OnTriggered { get; set; } + } +} diff --git a/ITrigger.cs.meta b/ITrigger.cs.meta new file mode 100644 index 0000000..5d1f353 --- /dev/null +++ b/ITrigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 7c3dcc511ff3a4b4ca6777800f34d17c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/README.md.meta b/README.md.meta new file mode 100644 index 0000000..8760fe2 --- /dev/null +++ b/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 44cae1d5afff6464cb93313a45605b8f +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Trigger.cs b/Trigger.cs new file mode 100644 index 0000000..0132b38 --- /dev/null +++ b/Trigger.cs @@ -0,0 +1,25 @@ +using System; +using UnityEngine; + +namespace Syntriax.Modules.Trigger +{ + public class Trigger : MonoBehaviour, ITrigger + { + private bool _isTrigerred = false; + + public Action OnTriggered { get; set; } = null; + public bool IsTrigerred + { + get => _isTrigerred; + protected set + { + bool oldValue = _isTrigerred; + + _isTrigerred = value; + + if (oldValue != value) + OnTriggered?.Invoke(value); + } + } + } +} diff --git a/Trigger.cs.meta b/Trigger.cs.meta new file mode 100644 index 0000000..7acab2a --- /dev/null +++ b/Trigger.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1e3718079b1e1024a997ca7eaa425903 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: