‫Xin chào.
‫Chào mừng.
‫Trong bài giảng này, chúng tôi sẽ làm cho công cụ nắm bắt đáng tin cậy hơn nhiều.
‫Và chúng tôi cũng sẽ làm cho nó có thể thả một thành phần bị nắm bắt để chúng tôi có thể ném nó xung quanh
‫và nói chung là nó hữu ích hơn một chút.
‫Hãy đi sâu vào và xem điều này được thực hiện như thế nào.
‫Bây giờ, lý do mà chúng tôi thường không thể chọn được chiếc gargoyle này là các thành phần
‫mô phỏng vật lý vì mục đích hiệu suất sẽ chuyển sang trạng thái ngủ khi chúng vẫn ở yên trong một khoảng thời gian nhất định.
‫Và đó là những gì chúng ta đang thấy.
‫Mô phỏng vật lý gargoyles này sẽ ở chế độ ngủ và nó sẽ không bị đánh thức khi chúng tôi gắn vào nó
‫bằng tay cầm vật lý của mình.
‫Vì vậy, những gì chúng ta cần học để làm là đánh thức nó khi chúng ta va vào nó bằng một dấu vết hình cầu.
‫Bây giờ chúng ta hãy xem qua tài liệu về thành phần nguyên thủy mà chúng ta đã thấy.
‫Thành phần nguyên thủy của bạn là thành phần được trả về bởi kết quả lần truy cập của chúng tôi, nhưng thực sự là thành
‫phần nguyên thủy.
‫Vì vậy, nó nói ở đây trong tài liệu rằng một thành phần nguyên thủy là một thành phần cảnh có chứa
‫hoặc tạo ra một số loại hình học và được kết xuất hoặc sử dụng làm dữ liệu va chạm.
‫Vì vậy, nói chung, các thành phần nguyên thủy là những thành phần có thể mô phỏng vật lý.
‫Vì vậy, chúng ta có thể mong đợi tìm thấy một số phương pháp mô phỏng vật lý ở đây.
‫Và những gì tôi sẽ tìm kiếm là một chức năng với từ khóa đánh thức trong đó.
‫Chúng ta sẽ xem xét một số chức năng cho đến khi chúng tôi tìm thấy một chức năng có nội dung Đánh thức tất cả các cơ quan cứng nhắc.
‫Vật thể cứng về cơ bản là một thuật ngữ vật lý để chỉ các vật thể mô phỏng vật lý.
‫Vì vậy, bạn có thể thấy nó có một khoảng trống.
‫Kiểu trả về không nhận bất kỳ đối số nào.
‫Vì vậy, chúng ta có thể chỉ gọi cái này khi chúng ta đang cố gắng gắn vào nó.
‫Vì vậy, nếu chúng ta đi đến lấy một CP bên trong câu lệnh if, chúng ta đã đạt được thành phần này, chúng ta sắp lấy
‫nó.
‫Điều đầu tiên chúng ta cần làm là tạo một biến để lưu trữ thành phần nguyên thủy của bạn.
‫Vì vậy, chúng tôi sẽ có một con trỏ thành phần ban đầu được gọi là tập hợp thành phần lần truy cập bằng với thành phần dấu
‫chấm kết quả lần truy cập.
‫Và sau đó sử dụng con trỏ thành phần hit đó, chúng ta có thể đánh thức tất cả các phần thân cứng nhắc mũi tên và sau đó đặt dấu ngoặc đơn
‫và dấu chấm phẩy ở cuối.
‫Vì vậy, điều này sẽ chỉ cung cấp cho thành phần đó một cú hích, đánh thức nó để nó phản ứng với tay cầm vật lý.
‫Bây giờ chúng ta hãy thay thế nơi chúng ta đã thực hiện các kết quả lần truy cập.
‫Đừng lấy các thành phần trong lệnh gọi xử lý vật lý của chúng tôi để lấy vị trí thành phần vì bây giờ chúng ta đã có một
‫biến cho điều đó và hãy biên dịch lại khi hoàn tất.
‫Hãy tiếp tục và chơi và để gargoyle ngồi một chút trên sàn nhà và để nó đi ngủ và
‫sau đó thử nhặt nó lên.
‫Và bạn sẽ nhận thấy rằng chúng tôi không gặp vấn đề gì khi nhặt nó lên, để nó nằm trên sàn, bất cứ điều gì.
‫Sẽ ổn thôi và đánh thức những cơ thể vật lý cứng nhắc đó và bắt đầu mô phỏng chúng để có thể nâng
‫lên và nắm lấy.
‫Bây giờ, bạn có thể nhận thấy rằng chúng tôi hiện không thể phát hành tay cầm vật
‫lý, vì vậy đó sẽ là thách thức của bạn để thực hiện điều đó trong chức năng phát hành.
‫Vì vậy, bạn sẽ gọi thành phần giải phóng trên tay cầm vật lý đó.
‫Đó là một chức năng có sẵn trên con trỏ điều khiển vật lý.
‫Trước tiên, bạn sẽ kiểm tra xem chúng tôi có một thành phần bị tóm lấy hay không.
‫Vì vậy, nếu bạn nhận được thành phần lấy trả về một con trỏ đến thành phần lấy, điểm đó sẽ không có giá
‫trị nếu tay cầm vật lý hiện không lấy bất kỳ thứ gì.
‫Vì vậy, bạn có thể sử dụng nó để kiểm tra xem chúng tôi có bất kỳ thứ gì không và chỉ phát hành nếu chúng tôi hiện đang lấy được thứ
‫gì đó.
‫Và như một phần thưởng, bạn có thể đi xem liệu chúng ta có thể đặt lại mục tiêu hay không.
‫Chỉ khi chúng ta đang nắm bắt thứ gì đó, nhưng hãy xem video và bắt đầu.
‫Chào mừng trở lại.
‫Vì vậy, chúng ta hãy đi vào để lấy một cốc.
‫Đi vào chức năng phát hành và xóa nhật ký phát hành.
‫Và ở đây chúng ta sẽ đặt một câu lệnh if và chúng ta sẽ nói nếu và bây giờ chúng ta cần nắm lấy các
‫chốt vật lý của chúng ta.
‫Vì vậy, trước hết chúng ta sẽ thực hiện một con trỏ thành phần xử lý vật lý cho bạn, mà chúng ta
‫sẽ gọi là xử lý vật lý và đặt giá trị đó bằng với xử lý vật lý.
‫Vì vậy, sau đó chúng ta sẽ nói nếu chốt vật lý bằng với con trỏ null, chúng ta muốn tiếp tục và quay trở lại vì chúng ta sẽ không
‫thể làm bất cứ điều gì, giải phóng bất cứ điều gì.
‫Nếu chúng ta hoàn toàn không có tay cầm vật lý, thì chúng ta muốn kiểm tra xem liệu hiện tại chúng ta có đang giữ bất cứ thứ gì với tay cầm
‫vật lý của mình hay không.
‫Vì vậy, nếu, giả sử, nếu mũi tên điều khiển vật lý nhận được dấu ngoặc đơn thành phần không bằng con trỏ null, thì bên trong phần nội dung của câu lệnh if này
‫có nghĩa là chúng ta có một thứ gì đó hiện đang nắm giữ, thì chúng ta
‫sẽ thực hiện một thành phần giải phóng mũi tên xử lý vật lý , sẽ cho phép nó trôi qua, như tên sẽ
‫gợi ý.
‫Và một điều tôi đã không làm trong mã ở đây, nhưng nó có lẽ đáng để thêm vào của bạn, đó là trước khi
‫chúng tôi phát hành thành phần, bạn nên tiếp tục và gọi các thành phần bị tóm lấy và sau đó thêm phần yếu tất cả các phần
‫cứng giống như chúng tôi đã làm trước khi chúng tôi lấy thành phần.
‫Bởi vì nếu chúng ta phát triển một thành phần và không di chuyển xung quanh trong một thời gian, nó cũng có thể chuyển sang trạng thái ngủ.
‫Và vì vậy việc phát hành nó sẽ không làm gì cả.
‫Vì vậy, điều này đáng được bổ sung vì nó sẽ bắt được trường hợp góc đó và chúng tôi muốn không thiết lập vị trí mục tiêu
‫trong tích tắc nếu chúng tôi có một tay cầm vật lý hiện không lấy bất cứ thứ gì.
‫Vì vậy, ở đây trong các thành phần đánh dấu của chúng ta, chúng ta sẽ đặt một câu lệnh if sẽ giống hệt nhau.
‫Nó sẽ được nói rằng xử lý vật lý mũi tên được nắm lấy thành phần không bằng con trỏ null.
‫Sau đó, trong phần nội dung của câu lệnh if, chúng ta cũng sẽ đặt tính toán vị trí mục tiêu và vị
‫trí mục tiêu thiết lập trong tay cầm vật lý đó.
‫Hãy biên dịch lại và thử điều này.
‫Hãy tiếp tục và nhấn chơi.
‫Và hãy thử và lấy gargoyle.
‫Và sau đó nếu tôi buông chuột, nó lại rơi xuống sàn.
‫Vì vậy, nó dường như không bị ảnh hưởng bởi dù thức hay ngủ.
‫Chúng tôi dường như đang đánh thức nó cho dù chúng tôi có đang nhặt nó lên hay không, về cơ bản.
‫Vì vậy, điều đó dường như đang hoạt động chính xác như tôi muốn.
‫Nó không bị mắc kẹt.
‫Nó cảm thấy vừa phải.
‫Điều hơi kỳ lạ duy nhất là khi tôi di chuyển vào trong đó, bạn có thể thấy nó thực sự rung rinh kỳ
‫lạ vì nó thực sự đang va chạm với người chơi.
‫Bây giờ chúng ta có thể khắc phục điều này một chút bằng cách đi đến gargoyle của chúng ta trong ngăn chi tiết, chọn
‫tất cả danh mục, cuộn xuống va chạm và xem cài đặt trước va chạm tùy chỉnh của chúng ta và xuống trong
‫các phản hồi đối tượng.
‫Chúng ta sẽ xem thêm một chút về điều này ở phần sau.
‫Có phản hồi đối tượng cầm đồ.
‫Về cơ bản, điều này nói lên rằng, Tôi có nên va chạm với người cầm đồ hay không?
‫Câu trả lời của tôi đối với người cầm đồ là gì?
‫Vâng, tôi sẽ đặt nó trùng với con tốt.
‫Và điều đó có nghĩa là nếu nó va chạm với tôi, về cơ bản nó chỉ phớt lờ nó.
‫Và sau đó một điều nữa chúng ta phải làm là vì nó thực sự được tạo thành từ hai mắt lưới tĩnh, chúng
‫có cài đặt va chạm của riêng mình.
‫Tôi sẽ đi xuống gò đất.
‫Đó là thứ bên dưới gargoyle.
‫Và ở đây tôi thực sự sẽ đơn giản hóa mọi thứ.
‫Tôi sẽ làm phần gò đất, không có va chạm.
‫Vì vậy, tôi sẽ chuyển nó sang cài đặt trước không có va chạm.
‫Sau đó, tôi sẽ tiếp tục và chơi trò chơi, lấy gargoyle từ sàn nhà.
‫Và bây giờ bạn có thể thấy khi tôi chạy với nó, không có bất kỳ
‫trục trặc kỳ lạ nào như vậy vì nó không cố gắng va chạm với lưới va chạm của người chơi.
‫Công cụ tuyệt vời.
‫Trong bài giảng này, chúng ta đã học cách làm cho phần mềm lấy của chúng ta trở nên đáng tin cậy hơn nhiều và cũng như cách chúng ta
‫có thể giải phóng thành phần lấy.
‫Công cụ tuyệt vời.
‫Hẹn gặp lại các bạn trong bài giảng tiếp theo.