Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Scripts / AI / Navmesh / Conditions / CanSeeCondition.cs
@Rackday Rackday on 21 Aug 748 bytes Project Added
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[CreateAssetMenu(menuName = "Finite State Machine/Condition/Can See Condition")]
public class CanSeeCondition : Condition
{
    public float viewAngle;
    public float viewDistance;
    protected override bool Test(FiniteStateMachine fsm)
    {
        Transform target = fsm.target;
        if (target != null)
        {
            Vector3 direction = target.position - fsm.transform.position;
            float distance = direction.magnitude;
            float angle = Vector3.Angle(direction.normalized, fsm.transform.forward);
            return (angle < viewAngle && distance < viewDistance);
        } else
        {
            return false;
        }
    }
}