Rodar faces Cubo de Rubik C #

Eu tenho procurado pela internet por alguns dias agora, e eu realmente não consigo encontrar uma resposta que eu possa entender bem o suficiente para rodar o meu Cubo de Rubik.

Eu fiz meu próprio modelo 3D usando o Blender de um Cubo de Rubik e importei para o Unity, que é o que eu vou usar para girar os rostos.

Mas eu não consigo entender a matemática envolvida na rotação de um Cubo de Rubik, devo usar Matrizes? Se sim, como faço para juntar tudo para que funcione?

Eu posso girar um único lado ao redor, agrupando os tijolos por rostos, mas no momento em que você vira a próxima face, isso interromperia completamente o outro.

Muito obrigado!