Похоже, это может быть связано с тем, что HorizontalcontrolThrow и VerticalcontrolThrow будут сброшены, когда вы отпустите элементы управления. Если он возвращается в исходную ориентацию, то до тех пор, пока вы не переместитесь, эти два значения будут иметь значения по умолчанию. Затем вы двигаетесь, и это влияет на вращение. Но когда вы отпускаете элементы управления, эти значения снова возвращаются к начальным значениям, как и ваше вращение.
Поэтому вам нужно попытаться отделить HorizontalcontrolThrow и VerticalcontrolThrow от остальной части кода, который должен быть активирован только тогда, когда хотя бы одна из этих двух переменных не имеет значения по умолчанию (я не могу вспомнить, что функции оси возвращают в данный момент).
Изменить:
An Оператора IF должно хватить (грубый псевдокод):
if (horizontalAxis != default || verticalAxis != default)
{
Rotate/Move
}