예제 #1
0
    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);
        }
    }
예제 #2
0
    // 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);
    }