Bạn nào làm việc vơi Unity rồi cho mình hỏi chút.
Mình đang học Unity theo hướng dẫn này: https://unity3d.com/learn/tutorials/s/roll-ball-tutorial
Game này chỉ đơn giản là lăn quả cầu và lượm cái khối màu vàng.
Mình xem đến phần này: https://unity3d.com/learn/tutorials/projects/roll-ball-tutorial/collecting-pick-objects?playlist=17141
Xử lý sự va chạm giữa Quả cầu và các khối vàng (Pick Up Object).
void OnTriggerEnter(Collider other)
{
if (other.gameObject.CompareTag("Pick Up")) {
other.gameObject.SetActive(false);
}
}
Script bắt sự kiện va chạm và set actice của game object Pick Up về false, làm nó biến mất.
Nhưng đoạn sau đó: https://youtu.be/XtR29MmzuT0?t=13m14s
Video có giải thích về việc Script hiện tại đã chạy được rồi nhưng chưa tối ưu. Đến đoạn này mình bắt đầu rối. Vì mới làm quen với Unity và vốn tiếng Anh không đủ để hiểu.
Mình hiểu bập bẹ thế này, nhưng có vẻ là sai:
Vấn đề này là do việc các Pick Up xoay liên tục ở hàm
Update
. Mà hàm này lại lặp liên tục ở mỗi frame. Mình có 12 Pick Up mỗi frame nó rotate 12 khối. Khi xử lý để làm Pick Up mất đi khi quả cầu chạm vào thì script dùngother.gameObject.SetActive(false);
. Tuy nhiên sau khi làm như vậy thìUpdate
của classRotator
vẫn tiếp tục rotato cho 12 Pick Up, trong khi đúng ra chỉ cần ratato cho cho ít hơn 12 khối.
Chỉ đoán được nội dung có vậy còn lại về phần hệ thống vật lý thì vẫn chưa hiểu gì
Vậy nên mình không hiểu vì sao lại nên add component Rigibody cho Pick Up? Và những giải thích khác về hệ thống vật lý trong Unity.
Vậy nên bạn nào làm việc với Unity và hiểu bản chất của Physics system trong Unity xin cho mình chút giải thích về vấn đề này (Unity’s Physics system). Xin cảm ơn!