Fica difícil de fazer algum teste pois não tem o script inteiro com a interface, mas o que me chamou a atenção foi isso, quando vc declara o rodada:
rodada = whee.rotation.y_rotation
E depois define a rotação:
whee.rotation.y_rotation =rodada + ( (360* (whee.pos.x - poix))/(2 * 3.1 * whee.radius) )
Assim esta repetindo a rotação nela mesma, é isso? Da mesma forma:
poix = whee.pos.x
E vc subtrai ele mesmo, vc faz isso pra compensar a posição inicial? Se for isso o ideal é usar position list ou dar um freeze tranform antes, assim ele sempre vai partir do valor zero.
Se puder colocar uma interface basica pra poder testar o script fica mais facil, assim sem testar fica mais como tiros no escuro.