Как повернуть проигрыватель?

#c# #unity3d

#c# #unity3d

Вопрос:

Я пытаюсь повернуть камеру моего проигрывателя, но приведенный ниже код не работает. Я использую это для сохранения / загрузки игровых функций

 public void ButtonSave()
 {
     PlayerPrefs.SetFloat("transform position x"   currentActiveSlot, playerTransform.position.x);
     PlayerPrefs.SetFloat("transform position y"   currentActiveSlot, playerTransform.position.y);
     PlayerPrefs.SetFloat("transform position z"   currentActiveSlot, playerTransform.position.z);

     // Save all 4 values for the quaternion
     PlayerPrefs.SetFloat("transform rotation x"   currentActiveSlot, playerTransform.rotation.x);
     PlayerPrefs.SetFloat("transform rotation y"   currentActiveSlot, playerTransform.rotation.y);
     PlayerPrefs.SetFloat("transform rotation z"   currentActiveSlot, playerTransform.rotation.z);
     PlayerPrefs.SetFloat("transform rotation w"   currentActiveSlot, playerTransform.rotation.w);

     PlayerPrefs.Save();
 }
 public void ButtonLoad() // call via canvas UI load button
 {
     // this work
     playerTransform.position = new Vector3(
             PlayerPrefs.GetFloat("transform position x"   currentActiveSlot),
             PlayerPrefs.GetFloat("transform position y"   currentActiveSlot),
             PlayerPrefs.GetFloat("transform position z"   currentActiveSlot));

     // this don't work
     Quaternion savedRotation = new Quaternion(
             PlayerPrefs.GetFloat("transform rotation x"   currentActiveSlot),
             PlayerPrefs.GetFloat("transform rotation y"   currentActiveSlot),
             PlayerPrefs.GetFloat("transform rotation z"   currentActiveSlot),
             PlayerPrefs.GetFloat("transform rotation w"   currentActiveSlot));
     playerTransform.rotation = savedRotation;    
 }
  

Пробовал приведенные ниже комбинации, но они тоже не работают

 playerTransform.Rotate(new Vector3(1, 2, 3));
playerTransform.Rotate(1, 2, 3);
playerTransform.eulerAngles = new Vector3(1, 2, 3);
  

И после запуска симуляции я не могу повернуть его руками

введите описание изображения здесь

Правка1

введите описание изображения здесь

Комментарии:

1. Если вы не можете «вращать руками», у вас наверняка есть функция обновления, устанавливающая поворот и переопределяющая то, что вы пытаетесь установить из редактора.

2. Я думаю, вы правы, но я не могу найти это место = (

3. Вам придется действовать шаг за шагом: отключите различные сценарии для вашего персонажа, а затем, когда вы узнаете, какой из них задает поворот, покопайтесь в коде, чтобы найти что-то вроде transform.rotation = ....

4. @Hellium Я отключил все объекты на сцене, и я могу изменить transform.rotation только при отключении подтверждения от первого лица игрока, как в правке 1. Когда я включаю его снова, все данные вращения принимают значения по умолчанию

5. Если поворот задан First Person Controller скриптом, найдите строку, задающую поворот в исходном коде (что-то вроде transform.rotation = или transform.Rotate . Вам придется изменить исходный код скрипта таким образом, чтобы учесть фрагмент кода, который вы написали в своем вопросе. Я больше не смогу вам помочь.