void OnSceneGUI() { GuardFieldOfView fov = (GuardFieldOfView)target; Handles.color = Color.white; Handles.DrawWireArc(fov.transform.position, Vector3.up, Vector3.forward, 360, fov.viewRadius); Vector3 viewAngleA = fov.DirFromAngle(-fov.viewAngle / 2, false); Vector3 viewAngleB = fov.DirFromAngle(fov.viewAngle / 2, false); Handles.DrawLine(fov.transform.position, fov.transform.position + viewAngleA * fov.viewRadius); Handles.DrawLine(fov.transform.position, fov.transform.position + viewAngleB * fov.viewRadius); Handles.color = Color.red; foreach (Transform visibleTarget in fov.visibleTargets) { Handles.DrawLine(fov.transform.position, visibleTarget.position); } }
// Use this for initialization void Start() { agent = GetComponent <NavMeshAgent>(); player = GameObject.FindGameObjectWithTag("Player"); target = new Vector3(); fovController = GetComponent <GuardFieldOfView>(); maxSearchTime = 8f; currentSearchTime = 0f; isRotating = false; stepCycle = 0f; stepInterval = 1f; nextStepTime = stepCycle + stepInterval; SetCurrentState(P_STATE); }