Người chơi bị hất vào tường khi nhấn nút


17

Vì vậy, tôi đang làm một game nhập vai từ trên xuống.

Mọi thứ đều tuyệt vời, nhưng vấn đề này khá khó chịu. Bây giờ, khi nhân vật di chuyển dựa vào tường, người chơi sẽ nhảy qua lại. Tôi đoán đó là bởi vì người chơi đang cố gắng di chuyển vào tường, và sau đó vụ va chạm trên tường đang đẩy nó trở lại, điều này tạo ra một chuyển động khó chịu qua lại. Câu hỏi của tôi rõ ràng là, làm thế nào để tôi ngăn chặn điều này xảy ra?

Cảm ơn!

PS: Tôi đang sử dụng Transform.translate để di chuyển trình phát và tôi đang sử dụng C #.

EDIT : Tôi cũng đang sử dụng 2D Rigidbody và máy va chạm 2Dbox trên cả hai.


Bạn chỉ cần một bài kiểm tra quét trước khi dịch
MickLH


Oh. Uh ... Tôi không chắc chắn làm thế nào để thêm cái này vào Unity C #. Tôi là một người mới với C #. Nếu bạn có kiến ​​thức, bạn có phiền giải thích làm thế nào để thực hiện điều này?
GMR516

Câu trả lời:


51

Sự hốt hoảng đang xảy ra do bạn vênh người chơi vào tường bằng Transform.Translate và bước vật lý đang nói: "Này, chúng ta đang ở trong tường. Hãy giải quyết vấn đề va chạm này và đẩy người chơi ra khỏi tường . "

Để tránh điều này, khi sử dụng Rigidbody2D, nên sử dụng Rigidbody2D.MovePocation . Điều này đảm bảo bạn sẽ không có máy va chạm chồng chéo khi di chuyển. Nếu một người va chạm và người cứng nhắc không thể di chuyển vì có gì đó cản trở, nó sẽ không bị xáo trộn.

Sử dụng Rigidbody2D.MovePocation, bạn có thể muốn đặt giá trị Rigidbody2D.interpolation để giữ cho chuyển động trông mượt mà.

Tuy nhiên, nếu Rigidbody2D.MovePocation không lý tưởng cho trò chơi của bạn vì một số lý do và bạn vẫn muốn sử dụng Transform.TransTable, hãy sử dụng Vật lý2D.Raycast (hoặc các phôi Vật lý khác ) để xem liệu di chuyển có khiến bạn va vào tường hay không, và Chỉ di chuyển nếu không có bức tường bị đánh.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.