PhysicsService

Hiển Thị Bản Đã Lỗi Thời

*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.

Không Thể Tạo
Dịch Vụ

PhysicsService chủ yếu chứa các phương pháp để làm việc với nhóm va chạm mà định nghĩa xem một bộ phận có thể hoặc không thể va chạm với các bộ phận trong các nhóm va chạm khác.Bạn có thể đăng ký một nhóm va chạm thông qua và gán các bộ phận cho nó bằng cách đặt tính năng của các bộ phận đó vào tên của nhóm va chạm.

Tạo, xóa và sửa các mối quan hệ va chạm giữa các nhóm va chạm được giới hạn ở phía máy chủ Scripts .

Xem Lọc va chạm để có chi tiết về sử dụng trong Studio và trong các kịch bản.

Tóm Tắt

Phương Pháp

Thuộc Tính

Phương Pháp

CollisionGroupSetCollidable

()

Đặt trạng thái va chạm giữa hai nhóm.Phương pháp này sẽ ném một lỗi nếu một trong những nhóm không được đăng ký, do đó khuyến nghị bạn xác nhận đăng ký của mỗi nhóm thông qua PhysicsService:IsCollisionGroupRegistered() trước khi thực hiện cuộc gọi này.

Tham Số

name1: string
Giá Trị Mặc Định: ""
name2: string
Giá Trị Mặc Định: ""
collidable: boolean
Giá Trị Mặc Định: ""

Lợi Nhuận

()

CollisionGroupsAreCollidable

Trả về xem liệu hai nhóm va chạm được đặc trưng sẽ va chạm hay không.Phương pháp này cũng sẽ trả về true nếu một trong những nhóm không được đăng ký, vì mặt nạ va chạm mặc định va chạm với tất cả các nhóm.

Tham Số

name1: string
Giá Trị Mặc Định: ""
name2: string
Giá Trị Mặc Định: ""

Lợi Nhuận

GetMaxCollisionGroups

Trả về số tối đa các nhóm va chạm mà động cơ hỗ trợ. Giá trị này hiện là 32.


Lợi Nhuận

GetRegisteredCollisionGroups

Trả về một bảng với thông tin về tất cả các nhóm va chạm của địa điểmđó. Mỗi giá trị trong bảng trả về là một bảng và bao gồm hai thành viên:


<th>Loại</th>
<th>Mô tả</th>
</tr>
</thead>
<tbody>
<tr>
<td>mặt nạ</td>
<td>số nguyên</td>
<td>Mặt nạ của nhóm va chạm; chỉ dùng cho 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

Lợi Nhuận

IsCollisionGroupRegistered

Kiểm tra xem nhóm va chạm đã được đăng ký hay chưa.Khuyến nghị bạn gọi phương pháp này trước khi gọi các phương pháp ném lỗi cho các nhóm va chạm chưa đăng ký, như PhysicsService:CollisionGroupSetCollidable() .

Tham Số

name: string
Giá Trị Mặc Định: ""

Lợi Nhuận

RegisterCollisionGroup

()

Đăng ký một nhóm va chạm mới với tên đã cho. Tên không thể là "Default" .

Lưu ý rằng phương pháp này có một chút quá tải về hiệu suất dựa trên số lượng trong không gian làm việc, vì vậy nó được khuyến khích bạn đăng ký tất cả các nhóm va chạm tại thời điểm chỉnh sửa thông qua trình soạn thảo Studio và gọi và như thường xuyên như có thể.

Tham Số

name: string
Giá Trị Mặc Định: ""

Lợi Nhuận

()

Mẫu mã

This example demonstrates one basic use of collision groups. It assigns BallPart to "CollisionGroupBall" and DoorPart to "CollisionGroupDoor", then makes the two groups non-collidable using PhysicsService:CollisionGroupSetCollidable().

PhysicsService:RegisterCollisionGroup

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 va chạm được đăng ký cụ thể, nhưng không không đổi tên tính năng CollisionGroup của các bộ phận sử dụng nhóm.Argent đầu tiên của phương pháp này là tên của nhóm để đổi tên, argument thứ hai là tên mới cho nhóm.Nếu nhóm được chỉ định không tồn tại, phương pháp này sẽ không làm bất cứ điều gì.Các tiêu chuẩn đặt tên cho tên mới tuân theo cùng một quy tắc như nếu nhóm được tạo với RegisterCollisionGroup() .

Phương pháp này sẽ ném một lỗi chạy thời gian trong các trường hợp sau:

  • Tên không hợp lệ hoặc trống được cung cấp cho cả hai lập luận.
  • Phương thức được gọi từ một khách hàng.

Lưu ý rằng phương pháp này có một chút quá tải về hiệu suất dựa trên số lượng trong không gian làm việc, vì vậy nó được khuyến khích bạn đăng ký tất cả các nhóm va chạm tại thời điểm chỉnh sửa thông qua trình soạn thảo Studio và đổi tên chúng thành ít thường xuyên nhất có thể.

Tham Số

from: string
Giá Trị Mặc Định: ""
to: string
Giá Trị Mặc Định: ""

Lợi Nhuận

()

UnregisterCollisionGroup

()

Xóa nhóm va chạm cho tên đã cho, với các hành vi sau:

  • Nếu tên không hợp lệ được cung cấp, phương thức sẽ không làm bất cứ điều gì.
  • Nếu tên được dự trữ "Default" được cung cấp hoặc nếu phương thức được gọi từ một khách hàng, nó sẽ ném lỗi.
  • Nếu có bất kỳ phần nào trong nhóm va chạm khi nó được xóa, các phần đó vẫn sẽ giữ tên nhóm va chạm giống nhau.Hành vi vật lý của các bộ phận trong một nhóm bị xóa không được xác định, vì vậy nên di chuyển bất kỳ bộ phận nào trong một nhóm bị xóa sang một nhóm khác, chẳng hạn như nhóm "Default".

Lưu ý rằng phương pháp này có một chút quá tải về hiệu suất dựa trên số lượng trong không gian làm việc, vì vậy nó được khuyến khích bạn đăng ký tất cả các nhóm va chạm tại thời điểm chỉnh sửa thông qua trình soạn thảo Studio và gọi phương pháp này càng ít càng tốt.

Tham Số

name: string
Giá Trị Mặc Định: ""

Lợi Nhuận

()

Sự Kiện