OldBlueWater/BlueWater/Assets/02.Scripts/Interface/IFieldOfView.cs

67 lines
1.6 KiB
C#
Raw Normal View History

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// ReSharper disable once CheckNamespace
namespace BlueWaterProject
{
[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;
}
}
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();
}
}