【Unity】敵の視野を疑似的に表示するギズモをつくった



よくある扇状の視野範囲をギズモで擬似的に表示できます。
検知の方法は偉大なるこちらの方の記事を参考にさせていただくと良いと思います。
: Unityで敵が主人公を検知する範囲を視覚内に限定する

Enemy_DetectionAI.cs
using UnityEngine;
public class Enemy_DetectionAI : MonoBehaviour
{   
    [SerializeField] private float searchRadius;
    [SerializeField] private float searchAngle = 130f;

   private void OnDrawGizmos()
    {
        Vector3 trans = transform.position;
        Gizmos.DrawWireSphere(trans, searchRadius);

        Gizmos.color = Color.red;
        float x, y, r, a;
        r = searchRadius;
        a = transform.eulerAngles.y + 90;
        x = r * Mathf.Cos(a * Mathf.PI / 180f);
        y = r * Mathf.Sin(a * Mathf.PI / 180f);
        Vector3 forwardPos = new Vector3(-x, 0, y);
        Gizmos.DrawSphere(trans + forwardPos, .1f);

        Gizmos.color = Color.green;
        float xr, yr;
        xr = r * Mathf.Cos((a + searchAngle/2) * Mathf.PI / 180f);
        yr = r * Mathf.Sin((a + searchAngle/2) * Mathf.PI / 180f);
        Vector3 rightPos = new Vector3(-xr, 0, yr);
        Gizmos.DrawSphere(trans + rightPos, .1f);

        Gizmos.color = Color.blue;
        float xl, yl;
        xl = r * Mathf.Cos((a - searchAngle/2) * Mathf.PI / 180f);
        yl = r * Mathf.Sin((a - searchAngle/2) * Mathf.PI / 180f);
        Vector3 leftPos = new Vector3(-xl, 0, yl);
        Gizmos.DrawSphere(trans + leftPos, .1f);

        Gizmos.color = Color.red;
        Gizmos.DrawLine(trans, trans + forwardPos);
        Gizmos.DrawLine(trans, trans + rightPos);
        Gizmos.DrawLine(trans, trans + leftPos);
    }
}