Beispiel #1
0
    protected virtual void Detection()
    {
        bool hasDetected = false;

        foreach (DetectableComponetBase detectable in detectableManager.detectables)
        {
            float dist = Vector3.Distance(detectable.transform.position, transform.position);
            if (dist <= detectingDist)
            {
                Vector3 displace = detectable.transform.position - transform.position;
                if (Vector3.Angle(transform.forward, displace) <= detectingAngle)
                {
                    if (firstDetectedTarget == null)
                    {
                        firstDetectedTarget = detectable;
                    }
                    hasDetected        = true;
                    lastDetectedTarget = detectable;
                }
            }
        }

        if (!hasDetected)
        {
            ClearDetection();
        }
    }
Beispiel #2
0
 protected virtual void ClearDetection()
 {
     firstDetectedTarget = null;
     lastDetectedTarget  = null;
 }