using System; using UFS2.Definitions; using UnityEngine; namespace UFS2.Gameplay { public class FishScanner : MonoBehaviour { public enum HitType { none = 0, wall = 1, water = 2, waypoint = 3, bait = 4, fish = 5 } public RaycastHit LastHit; private float seeDistance = 15f; private float sphereRadius => sphereRadius; public event Action OnHit; public void ScannerUpdate() { float radius = 1.5f; int mask = LayerMask.GetMask(Layers.BaitLure); if (Physics.SphereCast(base.transform.position, radius, base.transform.forward, out var hitInfo, seeDistance, mask)) { HitType arg = HitType.none; if (hitInfo.transform.CompareTag(Tags.BaitLure)) { arg = HitType.bait; } if (hitInfo.transform.CompareTag(Tags.FishTarget)) { arg = HitType.waypoint; } if (hitInfo.transform.gameObject.layer == LayerMask.GetMask(Layers.WaterObject)) { arg = HitType.wall; } LastHit = hitInfo; this.OnHit?.Invoke(arg, hitInfo); } } public void DeepCheckerRaycast() { float maxDistance = float.PositiveInfinity; float num = 0.5f; int mask = LayerMask.GetMask("Water"); if (Physics.Raycast(base.transform.position, Vector3.down, out var hitInfo, maxDistance, mask)) { _ = hitInfo.distance; } } public void WaterCheckerRaycast() { } private void OnDrawGizmos() { } } }