Камера вращается, когда она находится над головой сущности, возможно, потому что вы пытаетесь достичь точки, над которой вы находитесь вертикально.
Чтобы помочь вам вообразить это, представьте себе, пытаетесь ли вы использовать компас, который указывает на северный полюс, чтобы достичь северного полюса, и вы можете идти только в том направлении, куда указывает компас. Как только вы приблизитесь к северному полюсу, компас укажет на него. Но если вы продолжаете идти вперед, то в конечном итоге вы пройдете НАД северным полюсом и пройдете через него. Тогда компас будет вращаться и указывать назад, так что вы будете идти назад. В конце концов вы снова обойдете его, и компас снова перевернется.
В конце концов вы достигнете точки, в которой вы будете очень быстро возвращаться туда и обратно, но вы никогда не получите КВИТ напрямую. Поскольку компас всегда указывает на северный полюс, вы увидите, что компас вращается очень быстро, потому что вы перемещаетесь вокруг него очень быстро, очень близко к нему, но никогда точно не над головой. Чем ближе вы подходите, тем меньше движения оказывают большее влияние на направление компаса.
Я думаю, что это то, что происходит, когда камера фиксируется на цели, и игрок идет вперед. Как только вы попадаете на ВЕРХНЮЮ цель, камера пытается продолжать указывать на цель, но, так как вы очень близки, вы перемещаетесь назад и вперед по точке на цель, на которую указывает камера, и она поворачивается вокруг, пытаясь указать к этому.
Может быть, вы могли бы вставить чек следующим образом:
if (distanceToTarget.X >= 1 meter) then
camera.pointAtTarget(); --Point at the locked on target as your script would
else
camera.pointNormally(); --Point straight ahead as it normally would if there was no locked target
end
Расстояние зависит от вас, но общая идея заключается в том, что если вы приблизитесь к цели достаточно близко, чтобы камера начала вращаться вокруг нее, она перестанет отслеживать и будет нормально функционировать. В качестве альтернативы, если проблема возникает только когда ВЫШЕ против цели, попробуйте включить другое условие, чтобы проверить, находится ли игрок непосредственно над целью, и затем прекратить отслеживание.