PhysicsService
*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.
PhysicsService chủ yếu chứa các phương thức làm việc với nhóm va chạm định xem một bộ phận có thể hay không va chạm với các bộ phận trong n
Tạo, xóa và điều chỉnh mối quan hệ va chạm giữa các nhóm va chạm là giới hạn ở phía máy chủ Scripts .
Xem Lọc va chạm để biết chi tiết sử dụng trong Studio và trong các tập lệnh.
Tóm Tắt
Phương Pháp
Đặt tình trạng va chạm giữa hai nhóm.
Quyết định xem hai nhóm sẽ va chạm hay không.
Trả lại số lượng tối đa các nhóm va chạm.
Trả lại một bảng với các thông tin về tất cả các nhóm va chạm của địa điểmđó.
Kiểm tra nếu một nhóm va chạm đã được đăng ký.
Đăng ký một nhóm va chạm mới với tên đã được cung cấp.
Đổi tên nhóm va chạm được xác định.
Không đăng nhập nhóm va chạm cho tên đã được đăng nhập.
Thuộc Tính
Phương Pháp
CollisionGroupSetCollidable
Đặt tình trạng va chạm giữa hai nhóm. Phương thức này sẽ thả một lỗi nếu một trong những nhóm không được đăng ký, vì vậy nó được khuyến nghị rằng bạn xác nhận sự đăng ký của mỗi nhóm qua PhysicsService:IsCollisionGroupRegistered() trước khi thực hiện cuộc gọi n
Tham Số
Lợi Nhuận
CollisionGroupsAreCollidable
Trả về whether the two specified collision groups will collide. This method will also return true if either of the groups are unregistered, as the default collision mask collides with all groups.
Tham Số
Lợi Nhuận
GetMaxCollisionGroups
Trả lại số lượng tối đa các nhóm va chạm mà máy chủ hỗ trợ. Giá trị này hiện tại là 32.
Lợi Nhuận
GetRegisteredCollisionGroups
Trả lại một bảng với các thông tin về tất cả các nhóm va chạm của địa điểmnày. Mỗi giá trị trong bảng trả lại là một bảng và chứa hai thành viên:
<tbody><tr><td>mặt nạ</td><td>số</td><td>Mặt nạ của nhóm va chạm; chỉ dùng cho mục đích nội bộ.</td></tr><tr><td>tên</td><td>chuỗi</td><td>Tên của nhóm va chạm.</td></tr></tbody>
Thành viên | Kiểu | Mô tả |
---|
Lợi Nhuận
IsCollisionGroupRegistered
Kiểm tra xem một nhóm va chạm đã được đăng ký không. Nên gọi phương thức này trước khi gọi các phương thức đổ lỗi cho nhóm va chạm không đăng ký, chẳng hạn như PhysicsService:CollisionGroupSetCollidable() .
Tham Số
Lợi Nhuận
RegisterCollisionGroup
Đăng ký một nhóm va chạm mới với tên đã được đặt. Tên không thể là "Default" .
Lưu ý rằng phương thức này có một lớp trên cùng mỏng dính dựa trên số lượng BaseParts trong workspace, vì vậy nó được khuyến nghị rằng bạn đăng nhậ
Tham Số
Lợi Nhuận
Mẫu mã
local PhysicsService = game:GetService("PhysicsService")
local collisionGroupBall = "CollisionGroupBall"
local collisionGroupDoor = "CollisionGroupDoor"
-- Register collision groups
PhysicsService:RegisterCollisionGroup(collisionGroupBall)
PhysicsService:RegisterCollisionGroup(collisionGroupDoor)
-- Assign parts to collision groups
script.Parent.BallPart.CollisionGroup = collisionGroupBall
script.Parent.DoorPart.CollisionGroup = collisionGroupDoor
-- Set groups as non-collidable with each other and check the result
PhysicsService:CollisionGroupSetCollidable(collisionGroupBall, collisionGroupDoor, false)
print(PhysicsService:CollisionGroupsAreCollidable(collisionGroupBall, collisionGroupDoor)) --> false
RenameCollisionGroup
Đổi tên nhóm đăng ký đã đăng ký, nhưng không không đổi tên CollisionGroup property của các bộ phận sử dụng n
Phương thức này sẽ ném một lỗi lúc khởi động điều kiện sau:
- Tên không hợp lệ hoặc trống cho một trong những lý do.
- Phương thức được gọi từ một client.
Lưu ý rằng phương pháp này có một lớp trì hoãn hiệu suất nhỏ dựa trên số lượng BaseParts trong workspace, vì vậy nó được khuyến nghị rằng bạn đăng ký tất cả các nhóm va chạm ở thời điểm chỉnh sửa thông qua Studio editor và đổi tên chúng nh
Tham Số
Lợi Nhuận
UnregisterCollisionGroup
Không đăng nhập nhóm va chạm cho tên đã được đăng nhập, với các hành vi sau đây:
- Nếu cung cấp một tên không hợp lệ, phương thức sẽ không làm bất cứ điều gì.
- Nếu tên được dự phòng "Default" được cung cấp hoặc nếu phương thức được gọi từ một client, nó sẽ ném một lỗi.
- Nếu có bất kỳ phần nào trong nhóm va chạm khi nó được xóa, những phần đó vẫn sẽ duy trì cùng một tên nhóm va chạm. Hành vi vật lý của các phần trong một nhóm bị xóa là không xác định, vì vậy đề nghị di chuyển bất kỳ phần nào trong một nhóm bị xó
Lưu ý rằng phương pháp này có một lớp trì hoãn hiệu suất nhỏ dựa trên số lượng BaseParts trong workspace, vì vậy nó được khuyến nghị rằng bạn đăng nhập tất cả các nhóm va chạm ở thời điểm chỉnh sửa thông qua Studio editor và gọi phương ph