Поворачивай каждую секунду
Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 11 из 85.
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 градусов.
Задание
ЛегкоЗаставь куб вращаться вокруг оси y со скоростью speed градусов в секунду.
- В
Update()вызовиtransform.Rotate(x, y, z). - Укажи
speed * Time.deltaTimeдля среднего числа, то есть для y, а для x и z —0. Колесо выше вращалось вокруг z; этот куб вращается вокруг y.
Нажми «Играть»: куб делает четверть оборота каждую секунду. Затем нажми «Проверить».
Попробуйте сами
using UnityEngine;
public class Spinner : MonoBehaviour
{
public float speed = 90f;
void Update()
{
// Здесь поверните куб вокруг его оси y
}
}
Все уроки раздела Основы скриптинга в Unity
1Основы C# в Unity
Привет, UnityПеременныеДля дробных чисел нужна fТекст в консолиПеременные, которые запоминаютЕсли и иначеСравнение чиселПовторение: сборщик монет7Циклы и методы
Повторение с forЦиклы внутри цикловНапишите методМетоды, которые возвращают значениеМассивыПовторение: лестница10Поиск объектов
Поиск по имениТегиПоиск по типуСсылки лучше поискаNull в UnityПовторение: ближайшая монета13Проект: уворачиваемся от блоков
БегунБлоки с неба2Заставь двигаться
Размести кубДвигай каждый кадрПоворачивай каждую секундуУправляй клавишамиПовторение: веди куб5Векторы
Сложение векторовНаправленияЛокальное и мировое пространствоСкорость по диагоналиРасстояние между объектамиVector3 — это структураПовторение: пилот дрона8Игровые объекты и компоненты
Ссылки в InspectorПолучение компонентаОтсутствующие компонентыДобавление компонентаRequireComponentПоказ и скрытиеПовторение: выключатель светаПотренируйтесь самостоятельно: Песочница Unity