Trọng lực và khối lượng
Thuộc phần Vật lý và lối chơi trong hành trình Unity của Coddy. Bài học 1 trên 71.
Rigidbody giao đối tượng cho hệ thống vật lý của Unity, giống như khi bạn thêm một Rigidbody trong mục Add a Component. Từ đó, trọng lực làm đối tượng tăng tốc 9.81 m/s mỗi giây, còn Rigidbody có các cài đặt quyết định cách hoạt động. Hai cài đặt trong số đó là mass, tính bằng kilôgam (1 với Rigidbody mới), và useGravity (bật với Rigidbody mới).
Khối lượng không làm thay đổi tốc độ rơi. Trọng lực kéo vật nặng mạnh hơn, nhưng vật nặng cũng khó tăng tốc hơn đúng bằng mức đó, nên một chiếc thùng 1 kg và một cái đe 50 kg được thả từ cùng độ cao sẽ chạm đất trong cùng một khung hình. Khối lượng quan trọng khi các vật thể đẩy nhau: cái đe hất chiếc thùng sang một bên, còn chiếc thùng gần như không làm cái đe dịch chuyển. Quả bóng bay dự tiệc này có khối lượng nhẹ và không bị trọng lực tác động, nên nó lơ lửng ở vị trí mà cảnh đã đặt nó:
void Start()
{
Rigidbody rb = GetComponent<Rigidbody>();
rb.mass = 0.2f;
rb.useGravity = false;
}Khi tắt useGravity, quả bóng vẫn có khối lượng và vẫn chuyển động khi có vật gì đó va vào nó: chỉ có lực kéo của trọng lực dừng lại. Bật lại true, trọng lực sẽ kéo đối tượng từ vị trí hiện tại. Trong hệ thống vật lý của Unity cũng không có không khí, vì vậy lông vũ rơi như cục gạch, trừ khi bạn đặt cho Rigidbody của nó một giá trị Linear Damping.
Thử thách
DễTreо hai thùng hàng, rồi thả chúng cùng lúc bằng phím Space.
- Trong
Start(), bên dưới dòngGetComponent, đặtrb.mass = weight;vàrb.useGravity = false;. - Trong
Update(), khi cóInput.GetKeyDown(KeyCode.Space), đặtrb.useGravity = true;.
Nhấn Chơi rồi nhấn Space: Safe nặng và Box nhẹ sẽ tiếp đất cùng lúc. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class CraneLoad : MonoBehaviour
{
public float weight = 1f;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
// Đặt khối lượng bằng weight và tắt tác dụng của trọng lực
}
void Update()
{
// Space: bật lại tác dụng của trọng lực
}
}
Tất cả bài học trong Vật lý và lối chơi
1Rigidbody
Trọng lực và khối lượngĐẩy bằng AddForceNhảy bằng xung lựcFixedUpdate cho vật lýVận tốcVật thể động họcÔn tập: Bệ phóng4Coroutine
InvokeInvokeRepeating, CancelInvokeCoroutine đầu tiên của bạnVòng lặp trong CoroutineDừng CoroutineÔn tập: đếm ngược10Dự án: Thoát khỏi đấu trường
Đấu trườngThợ săn2Va chạm
OnCollisionEnterMình đã va chạm với gì?Vỡ khi va chạmĐứng trên mặt đấtĐộ nảy và ma sátHình dạng colliderÔn tập: Tường có thể phá vỡ5Dự án: Cuộc đua thu thập xu
Quả bóng lănThu thập xuTự luyện tập: Playground Unity