diff options
Diffstat (limited to 'Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs')
-rw-r--r-- | Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs new file mode 100644 index 00000000..179d8511 --- /dev/null +++ b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs @@ -0,0 +1,34 @@ +using System; +using UnityEngine; + +namespace Assets.AbstractWiresEffect.Scripts +{ + internal sealed class CollisionDetector : MonoBehaviour + { + public float CollisionDistance; + + private Transform _transform; + + public event Action<Vector3> CollisionDetected; + + private void Start() + { + _transform = transform; + } + + private void FixedUpdate() + { + RaycastHit hit; + if (!Physics.Raycast(_transform.position, -transform.up, out hit, CollisionDistance)) + return; + + var distance = Vector3.Distance(_transform.position, hit.point); + + if (distance > CollisionDistance) + return; + + if (CollisionDetected != null) + CollisionDetected.Invoke(hit.point); + } + } +} |