Я знаю, что это старый пост, но .....
из опыта это почти всегда Vector3.Normalize, что я использую по ошибке.
Когда я не уверен, будет ли это нулевая длина, я теперь всегда делаю
float L = V.Length ();
если (L! = 0.0)
V / = L;
деление на ноль в Normalize должно давать исключение, но это не так. Вызвала у меня много головных царапин.