#unity3d
Вопрос:
Поэтому большинство поисковых запросов Google для вращающегося skybox предлагают добавить что-то подобное в обновление:
RenderSettings.skybox.SetFloat("_Rotation", Time.time * 1.23f);
Или что-то в этом роде, если у вас есть компонент skybox на вашей камере:
GetComponent<Skybox>().material.SetFloat("_Rotation", Time.time * 1.23f);
Я пробовал как с первым методом (без компонента skybox на камере), так и со вторым методом (с компонентом skybox на камере), и ни один из них не работает. Там нет ошибки, выданной fwiw. Кроме того, я могу без проблем изменять материал skybox во время выполнения, так что дело не в том, что я не могу получить доступ к материалу, скорее кажется, что установка _Rotation не имеет никакого эффекта.
Любой совет приветствуется. Спасибо
Ответ №1:
Я только что проверил
void Update()
{
RenderSettings.skybox.SetFloat("_Rotation", Time.time * 1.23f);
}
и это, кажется, отлично работает для меня.
Какой тип шейдера вы используете в своем материале skybox?
Я только что проверил это с Skybox/6 Sided
помощью шейдера.
Комментарии:
1. Спасибо, я думаю, что в этом вся суть. Я использую пользовательский материал skybox из актива unity, который я купил, и в нем не используется сторона Skybox/6, но пользовательский шейдер skybox, и, следовательно, похоже, не используется _Rotation или, по крайней мере, не таким же образом. Я собираюсь отправить электронное письмо создателю активов и спросить, что мне нужно сделать, чтобы повернуть его. Я протестировал шейдер Skybox/6sided, и теперь он работал отлично.