Files
2026-03-04 10:03:45 +08:00

81 lines
1.7 KiB
C#

using System.Collections.Generic;
using UnityEngine;
public class FishSystem : MonoBehaviour
{
public List<WaterDisplacementObject> inwaterObjects;
public List<FishStats> inwaterFishObjects;
private void Start()
{
}
private void FixedUpdate()
{
}
public void AddInwaterObject(WaterDisplacementObject wIobj)
{
if (!inwaterObjects.Contains(wIobj))
{
inwaterObjects.Add(wIobj);
}
}
public void DeleteInwaterObject(WaterDisplacementObject wIobj)
{
if (inwaterObjects.Contains(wIobj))
{
inwaterObjects.Remove(wIobj);
}
}
public void AddInwaterFishObject(FishStats wIobj)
{
if (!inwaterFishObjects.Contains(wIobj))
{
inwaterFishObjects.Add(wIobj);
}
}
public void DeleteInwaterFishObject(FishStats wIobj)
{
if (inwaterFishObjects.Contains(wIobj))
{
inwaterFishObjects.Remove(wIobj);
}
}
public BaitStats DetectNearBaitByDistance(Transform transformObject, float dst)
{
BaitStats result = null;
for (int i = 0; i < inwaterObjects.Count; i++)
{
if (!(inwaterObjects[i].baitStats != null) || inwaterObjects[i].baitStats.isDisabled)
{
continue;
}
Hook component = inwaterObjects[i].baitStats.GetComponent<Hook>();
Lure component2 = inwaterObjects[i].baitStats.GetComponent<Lure>();
if ((bool)component)
{
if ((bool)component.takeFish)
{
return null;
}
}
else if ((bool)component2 && (bool)component2.takeFish)
{
return null;
}
float num = Vector3.Angle(inwaterObjects[i].transform.position - transformObject.position, transformObject.forward);
if (Vector3.Distance(transformObject.position, inwaterObjects[i].transform.position) < dst && num < 90f)
{
result = inwaterObjects[i].baitStats;
}
}
return result;
}
}