Wytłumaczy mi ktoś na szybko quaterniony?

Ewentualnie pokaże na przykładzie kodu i wytłumaczy pobieżnie dlaczego działa tak, a nie inaczej?

Mam obiekt, który obraca się o 90 stopni w każdym wymiarze.

Ze względu na to, że animacja obrotu jest niedokładna i nie ustawia się na dokładne 90 stopni, jestem zmuszony ustawiać rotację własnoręcznie. Ale trafiam na Gimbal Lock i zaczynają się problemy.

Tutaj przykład mojego skryptu (dla jednej osi, pozostałe są analogicznie).
@dptd: ja używałem tylko jakiś 2-3 tutoriali z YT i to mi wystarczyło, żeby zrobić w miarę przyjemne bieganie dookoła, nakładające się animacje biegu+ataku itp ;D A dalej to już raczej nie tutoriale tylko szukanie rozwiązania do konkretnego problemu :D

Swoją drogą w unity możesz wybrać jakiego języka chcesz używać, polecam JS chociaż ja pisałem w C#.