Newer
Older
HardPoint-Project-Abertay-University-Unity3D / Assets / Scripts / FSM / Conditions / OnAirRangeCondition.cs
@Rackday Rackday on 18 Aug 800 bytes Project Added
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(menuName = "AI/Condiction/CanAirAttack")]

public class OnAirRangeCondition : Condiction
{

    [SerializeField]
    private bool negation;
    [SerializeField]
    private float viewAngle;
    [SerializeField]
    private float viewDistance;

    public override bool Test(FiniteStateMachine fsm)
    {
        Vector3 direction = fsm.GetTarget().transform.position - fsm.transform.position;
        float distance = direction.magnitude;
        float angle = Vector3.Angle(direction.normalized, fsm.transform.forward);
        if ((angle < viewAngle) && (distance < viewDistance))
        {
            return !negation;
        }
        else
        {
            return negation;
        }
    }
}