Поворачивайте каждую секунду
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 4 из 67.
transform.Rotate(x, y, z) поворачивает GameObject на указанное количество градусов вокруг каждой из его осей. При вызове в Update() объект понемногу поворачивается на каждом кадре, поэтому продолжает вращаться.
Но сколько кадров приходится на секунду? На быстром компьютере, возможно, 120, а на телефоне — 30. Обычный вызов transform.Rotate(0, 0, 5) на быстром устройстве заставлял бы объект вращаться в четыре раза быстрее. Решение Unity — Time.deltaTime: количество секунд, прошедших с последнего кадра. Умножьте на него скорость — и она будет означать скорость в секунду на любом устройстве.
Здесь колесо вращается вокруг оси z со скоростью 45 градусов в секунду:
public float speed = 45f;
void Update()
{
transform.Rotate(0, 0, speed * Time.deltaTime);
}При 60 кадрах в секунду Time.deltaTime равен примерно 0.0167, поэтому за каждый кадр объект поворачивается на 45 * 0.0167, то есть примерно на 0.75 градуса, а за 60 таких кадров получается 45 градусов. При 30 кадрах в секунду за каждый кадр объект поворачивается вдвое сильнее, и за секунду по-прежнему набирается 45 градусов.
Задание
ЛегкоУ куба есть скрипт Spinner со значением speed 90. В Update() заставь куб вращаться вокруг оси y на speed градусов в секунду на любом устройстве.
Нажми Play, чтобы посмотреть, а затем Check.
Попробуйте сами
using UnityEngine;
public class Spinner : MonoBehaviour
{
public float speed = 90f;
void Update()
{
// Здесь поверните куб вокруг его оси y
}
}
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы скриптинга в Unity
1Ваш первый скрипт
Привет, UnityРазместите кубДвигайте каждый кадрПоворачивайте каждую секундуУправляйте клавишамиПовторение: управляйте кубом2Инспектор
Поля инспектораSerializeFieldЧисла с плавающей точкой и MathfАтрибуты инспектораПовторение: лифт5Преобразования и иерархия
Родители и детиМасштабПосмотри на объектыДвигайся к точкеПовторение: Луна на орбите6Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказать и скрытьПовторение: выключатель света