Xoay mỗi giây
Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 11 trên 85.
transform.Rotate(x, y, z) xoay một GameObject một số độ tương ứng quanh từng trục của nó. Khi được gọi trong Update(), hàm này xoay một chút sau mỗi khung hình, nên đối tượng cứ tiếp tục xoay.
Nhưng một giây có bao nhiêu khung hình? Trên máy tính nhanh, có thể là 120; trên điện thoại, có thể là 30. Lệnh transform.Rotate(0, 0, 5) thông thường sẽ khiến đối tượng xoay nhanh gấp bốn lần trên máy nhanh. Unity có giải pháp là Time.deltaTime: số giây đã trôi qua kể từ khung hình trước. Nhân tốc độ với giá trị này, tốc độ sẽ tính theo mỗi giây trên mọi thiết bị.
Ở đây, bánh xe xoay quanh trục z với tốc độ 45 độ mỗi giây:
public float speed = 45f;
void Update()
{
transform.Rotate(0, 0, speed * Time.deltaTime);
}Ở tốc độ 60 khung hình mỗi giây, Time.deltaTime xấp xỉ 0.0167, nên mỗi khung hình bánh xe xoay 45 * 0.0167, tức khoảng 0.75 độ. Sau 60 khung hình, tổng góc xoay là 45 độ. Ở tốc độ 30 khung hình mỗi giây, mỗi khung hình bánh xe xoay xa gấp đôi, nhưng tổng góc xoay sau một giây vẫn là 45 độ.
Thử thách
DễCho khối lập phương quay quanh trục y với tốc độ speed độ mỗi giây.
- Trong
Update(), gọitransform.Rotate(x, y, z). - Đặt
speed * Time.deltaTimevào số ở giữa, dành cho y, và đặt0cho x và z. Bánh xe bên trên quay quanh trục z, còn khối lập phương này quay quanh trục y.
Nhấn Chơi: khối lập phương quay một phần tư vòng mỗi giây. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class Spinner : MonoBehaviour
{
public float speed = 90f;
void Update()
{
// Xoay khối lập phương quanh trục y tại đây
}
}
Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity
1C# cơ bản trong Unity
Xin chào, UnityBiếnSố thập phân cần có fVăn bản trong ConsoleBiến có thể ghi nhớIf và elseSo sánh các sốÔn tập: Thu thập xu7Vòng lặp và phương thức
Lặp lại với forVòng lặp lồng nhauViết phương thứcPhương thức trả lờiMảngÔn tập: Cầu thang2Làm cho nó chuyển động
Đặt khối lập phươngDi chuyển theo từng khung hìnhXoay mỗi giâyĐiều khiển bằng các phímÔn tập: Lái khối lập phương5Vectơ
Cộng vectơPhương hướngKhông gian cục bộ và không gian thế giớiTốc độ theo đường chéoKhoảng cách giữa các vậtVector3 là một structÔn tập: Người điều khiển drone8GameObject và thành phần
Tham chiếu trong InspectorLấy một thành phầnThành phần bị thiếuThêm một thành phầnRequireComponentHiện và ẩnÔn tập: Công tắc đèn3Inspector
Các trường trong InspectorSerializeFieldSố thực và MathfThuộc tính trong InspectorÔn tập: thang máy6Biến đổi và hệ phân cấp
Đối tượng cha và conKéo cờ lênTỷ lệNhìn vào các vật thểDi chuyển đến một điểmÔn tập: Mặt trăng quay quanh9Dự án: Bắt lấy ngôi sao
Người bắt saoNgôi sao rơiTự luyện tập: Playground Unity