Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/UFS2/Gameplay/FishScanner.cs
2026-03-04 10:03:45 +08:00

71 lines
1.4 KiB
C#

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<HitType, RaycastHit> 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()
{
}
}
}