예제 #1
0
 private void Awake()
 {
     anim        = GetComponent <Guard_Animation>();
     agent       = GetComponent <NavMeshAgent>();
     fieldOfView = transform.Find("Hips/FieldOfView").GetComponent <Guard_FieldOfView>();
     hips        = transform.Find("Hips");
 }
예제 #2
0
    private void OnSceneGUI()
    {
        Guard_FieldOfView fow = (Guard_FieldOfView)target;

        Handles.color = Color.white;
        Handles.DrawWireArc(fow.transform.position, Vector3.up, Vector3.forward, 360, fow.viewRadius);
        Handles.DrawWireArc(fow.transform.position, Vector3.up, Vector3.forward, 360, fow.detectRadius);


        Vector3 viewAngleA = fow.DirFromAngle(-fow.viewAngle / 2, false);
        Vector3 viewAngleB = fow.DirFromAngle(fow.viewAngle / 2, false);

        Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleA * fow.detectRadius);
        Handles.DrawLine(fow.transform.position, fow.transform.position + viewAngleB * fow.detectRadius);

        Handles.color = Color.red;
        foreach (Transform visibleTarget in fow.visibleTargets)
        {
            Handles.DrawLine(fow.transform.position, visibleTarget.position);
        }
    }