2023-08-15 23:34:55 +00:00
|
|
|
using System;
|
2023-08-15 20:36:04 +00:00
|
|
|
using System.Collections;
|
|
|
|
using System.Collections.Generic;
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
// ReSharper disable once CheckNamespace
|
|
|
|
namespace BlueWaterProject
|
|
|
|
{
|
2023-08-15 23:34:55 +00:00
|
|
|
[Serializable]
|
|
|
|
public class TargetInfo
|
|
|
|
{
|
|
|
|
public Transform transform;
|
|
|
|
public Collider collider;
|
|
|
|
public IAiStat iAiStat;
|
|
|
|
|
|
|
|
public TargetInfo()
|
|
|
|
{
|
|
|
|
transform = null;
|
|
|
|
collider = null;
|
|
|
|
iAiStat = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
public TargetInfo(Transform transform, Collider collider, IAiStat iAiStat)
|
|
|
|
{
|
|
|
|
this.transform = transform;
|
|
|
|
this.collider = collider;
|
|
|
|
this.iAiStat = iAiStat;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void SetTargetInfo(Transform targetTransform, Collider collider, IAiStat targetIAiStat)
|
|
|
|
{
|
|
|
|
transform = targetTransform;
|
|
|
|
this.collider = collider;
|
|
|
|
iAiStat = targetIAiStat;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void DefaultSetting()
|
|
|
|
{
|
|
|
|
transform = null;
|
|
|
|
collider = null;
|
|
|
|
iAiStat = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-08-15 20:36:04 +00:00
|
|
|
public interface IFieldOfView : IAiStat
|
|
|
|
{
|
|
|
|
// Properties
|
|
|
|
bool IsDrawGizmosInFieldOfView { get; set; }
|
|
|
|
|
|
|
|
LayerMask TargetLayer { get; set; }
|
|
|
|
|
|
|
|
float ViewRadius { get; set; }
|
|
|
|
|
|
|
|
Collider[] ColliderWithinRange { get; set; }
|
|
|
|
|
|
|
|
List<TargetInfo> TargetInfoList { get; set; }
|
|
|
|
|
|
|
|
IAiStat IaiStat { get; set; }
|
|
|
|
|
|
|
|
TargetInfo TargetInfo { get; set; }
|
|
|
|
|
|
|
|
// Functions
|
|
|
|
void DrawGizmosInFieldOfView();
|
|
|
|
IEnumerator FindTarget();
|
|
|
|
void UpdateLookAtTarget();
|
|
|
|
}
|
|
|
|
}
|