81 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|