Visages tournants Rubik’s Cube C #

Cela fait quelques jours que je cherche sur Internet et je ne trouve pas vraiment de réponse suffisamment compréhensible pour faire pivoter mon Rubik’s Cube.

J’ai créé mon propre modèle 3D en utilisant Blender d’un cube de Rubik et je l’ai importé dans Unity, ce que je vais utiliser pour faire pivoter les faces.

Mais je ne semble tout simplement pas comprendre les mathématiques impliquées dans la rotation d’un cube de Rubik. Devrais-je utiliser des masortingces? Si oui, comment puis-je coupler le tout pour que cela fonctionne?

Je peux faire pivoter un seul côté en regroupant les briques par visages, mais le fait de tourner le prochain visage bouleverserait complètement l’autre.

Merci beaucoup!

Mon idée: conserver chacun des 26 blocs en tant GameObject distincts (8 coins, 12 arêtes, 6 centres), l’origine de chaque bloc étant au centre du cube. Séparément, vous gardez une trace du bloc où se trouve actuellement le cube, par exemple dans un tableau 3D.

Ensuite, lorsqu’un visage doit être tourné:

  • Découvrez quels blocs appartiennent à la face.
  • Faites pivoter chacun de ces blocs autour de l’axe de rotation (au centre du cube) à l’aide de la fonctionnalité de rotation normale de Unity.
  • Mettre à jour les informations sur quels blocs sont où.