Ошибка cs0161 "не все пути к коду возвращают значение"

вообщем, суть такая: нужно проверять, заняты ли координаты объекта. для этого использую булевую переменную. И в итоге пишет "не все пути к коду возвращают значение". Помогите пожалуйста

private void SpawnPositions() {
    List<Vector3> positions = new List<Vector3>();
    if (IsPositionEmpty(new Vector3(nowCube.x + 1, nowCube.y, nowCube.z))) 
        positions.Add(new Vector3(nowCube.x, nowCube.y, nowCube.z));
    
}

private bool IsPositionEmpty(Vector3 targetPos) {
    if(targetPos.y == 0) 
        return false;
    
    foreach (Vector3 pos in allCubesPositions) {
        if (pos.x == targetPos.x && pos.y == targetPos.y && pos.z == targetPos.z) {
            return false;
        }
        return true;
    }
}

P.S: простите если что-то в вопросе написал не так, я просто первый раз на форумах.


Ответы (1 шт):

Автор решения: Zufir

Если коллекция allCubesPositions пустая - то у вас return никогда не выполнится.

Кажется, return true; нужно вынести за цикл

→ Ссылка