From 348306caec8f3c1aebee14523f7ae7d9b2c452b3 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 21 Oct 2020 08:40:48 +0800 Subject: +VFX --- .../Scripts/CollisionDetector.cs | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs (limited to 'Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts/CollisionDetector.cs') 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 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); + } + } +} -- cgit v1.1-26-g67d0