Physics.OverlapSphere retunr

Hello! Im getting error:
not all code paths return a vale
I know, i must return something but i can’t solve it. return nearestmob; or return nearestmob.collider; wont help.
i need a closest target from this part.

    public Collider SortTargets()

    {
        Collider[] cols = Physics.OverlapSphere(this.transform.position, attackMaximumDistance);
        foreach (Collider col in cols)
        {
            if (col.tag == "Monster")
            { Debug.Log("wee");
            if ((Vector3.Distance(col.transform.position, turretHead.position) < closestMobDistance) || closestMobDistance == 0)
            {
                closestMobDistance = Vector3.Distance(col.transform.position, turretHead.position);
                nearestmob = col.gameObject;
                return nearestmob.collider;
            }
          }
        }
    }

1 Answer

1

You are returning in the wrong place anyway!!

public Collider SortTargets()

{
    Collider[] cols = Physics.OverlapSphere(this.transform.position, attackMaximumDistance);
    foreach (Collider col in cols)
    {
        if (col.tag == "Monster")
        { Debug.Log("wee");
        if ((Vector3.Distance(col.transform.position, turretHead.position) < closestMobDistance) || closestMobDistance == 0)
        {
            closestMobDistance = Vector3.Distance(col.transform.position, turretHead.position);
            nearestmob = col.gameObject;
            
        }
      }
    }
    return nearestmob.collider;
}

If this worked for you please tick the answer. If not, let me know! [10689-tick+me.png|10689]