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 TargetInfoList { get; set; } IAiStat IaiStat { get; set; } TargetInfo TargetInfo { get; set; } // Functions void DrawGizmosInFieldOfView(); IEnumerator FindTarget(); void UpdateLookAtTarget(); } }