он как-то повернут, по всем осям. 
                  
                  
                  Я знаю его кватернион поворота. Как мне повернуть этот объект по нужной оси на нужное количество градусов?
                  
                  
                  Я делаю так: currentQuaternion * Quaternion.CreateFromAxisAngle(axis, angle)
                  
                  
                  Синтаксис условный. Но почему-то ведет себя странно, не могу понять почему. У меня это делается в апдейте, axis постоянно меняется, и объект постепенно теряет ось врещения (вращается не вокруг axis)
                  
                  
                
Так если не использовать Rotate transform'a. quaternion *= Quaternion.AngleAxis(Time.deltaTime * _speed, _direction);
Как сказал человек, он не в Unity делает. Но даже если fixed, странно что поворот не успевает за осью. Скорее дело в глобальном и локальном пространстве.
Там нет локального пространства, все в глобал делается
Но тем нее менее, ось вращения можно указывать относительно объекта или относительно мирового пространства. Я прикрепил скрипт, вроде это то, чего ты добиваешься.
Обсуждают сегодня