Я не понимаю, почему fullHoles.Contains
не должен делать здесь трюк.
Но обратите внимание, что Vector3 == operator
использует точность 0.00001
для равенства означает, что он делает то же самое, что и
if(Vector3.Distance(cylpos, holpos) < 0.00001f)
Я не знаю, как именно вы перемещаете соответствующие объекты, но очень маловероятно, что перемещенный GameObject будет точно соответствовать позиции с такой точностью во время выполнения.
Так что я могу только догадываться, что объекты не были добавлены в fullholes
так, как вы ожидали.
Возможно, вам лучше использовать
[SerializeField] private float threshold = 0.1f;
...
if(Vector3.Distance(cylpos, holpos) < threshold)
и настройте threshold
через инспектора в соответствии с вашими потребностями