Obracaj co sekundę
Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 11 z 85.
transform.Rotate(x, y, z) obraca obiekt GameObject o podaną liczbę stopni wokół każdej z jego osi. Wywołana w Update() obraca go trochę w każdej klatce, więc obiekt obraca się bez przerwy.
Ale ile klatek przypada na sekundę? Na szybkim komputerze może być ich 120, a na telefonie może być 30. Zwykłe transform.Rotate(0, 0, 5) obracałoby obiekt cztery razy szybciej na szybszym urządzeniu. Rozwiązaniem Unity jest Time.deltaTime: liczba sekund, które upłynęły od poprzedniej klatki. Pomnóż przez nią prędkość, a będzie ona oznaczać prędkość na sekundę na każdym urządzeniu.
W tym przykładzie koło obraca się wokół osi z o 45 stopni na sekundę:
public float speed = 45f;
void Update()
{
transform.Rotate(0, 0, speed * Time.deltaTime);
}Przy 60 klatkach na sekundę Time.deltaTime wynosi około 0.0167, więc w każdej klatce obiekt obraca się o 45 * 0.0167, czyli około 0.75 stopnia, a 60 takich obrotów daje 45 stopni. Przy 30 klatkach na sekundę w każdej klatce obiekt obraca się dwa razy dalej, a suma po sekundzie nadal wynosi 45 stopni.
Wyzwanie
ŁatwySpraw, by sześcian obracał się wokół osi y z prędkością speed stopni na sekundę.
- W
Update()wywołajtransform.Rotate(x, y, z). - Umieść
speed * Time.deltaTimejako środkową liczbę, dla osi y, a0dla osi x i z. Powyższe koło obracało się wokół osi z; ten sześcian obraca się wokół osi y.
Naciśnij „Graj”: sześcian wykonuje ćwierć obrotu co sekundę. Następnie naciśnij „Sprawdź”.
Spróbuj swoich sił
using UnityEngine;
public class Spinner : MonoBehaviour
{
public float speed = 90f;
void Update()
{
// Obróć tutaj sześcian wokół jego osi y
}
}
Wszystkie lekcje w sekcji Podstawy skryptów w Unity
1Podstawy C# w Unity
Witaj, UnityZmienneLiczby dziesiętne wymagają fTekst w konsoliZmienne, które pamiętająIf i elsePorównywanie liczbPowtórka: Zbieracz monet4Wejście
Naciśnięty, przytrzymany, zwolnionyOsiePrzyciski z nazwamiPrzyciski myszyPowtórka: naładowany skok7Pętle i metody
Powtarzaj za pomocą forPętle wewnątrz pętliNapisz metodęMetody, które zwracają wynikTablicePowtórka: schody10Wyszukiwanie obiektów
Wyszukiwanie po nazwieTagiWyszukiwanie po typieReferencje lepsze niż wyszukiwanieNull w UnityPowtórka: najbliższa moneta13Projekt: Unikaj bloków
BiegaczBloki z nieba2Wpraw to w ruch
Umieść sześcianPoruszaj w każdej klatceObracaj co sekundęSteruj za pomocą klawiszyPodsumowanie: Prowadź sześcian5Wektory
Dodawanie wektorówKierunkiPrzestrzeń lokalna i globalnaPrędkość po przekątnejOdległość między obiektamiVector3 to strukturaPodsumowanie: pilot drona8Obiekty gry i komponenty
Referencje w InspectorzePobieranie komponentuBrakujące komponentyDodawanie komponentuRequireComponentPokazywanie i ukrywaniePowtórka: włącznik światłaPoćwicz samodzielnie: Edytor online Unity