PhysicsService

Tampilkan yang Tidak Digunakan Lagi

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Tidak Dapat Dibuat
Layanan

PhysicsService terutama berisi metode untuk bekerja dengan kumpulan bertabrakan yang mendefinisikan apakah set dari bagian dapat atau tidak bertabrakan dengan bagian dalam grupbertabrakan lainnya.

Menciptakan, menghapus, dan mengubah hubungan tabrakan antara kumpulan tabrakan adalah terbatas pada pihak server Scripts .

Lihat Pembersihan Tabrakan untuk detail penggunaan di Studio dan dalam skrip.

Rangkuman

Metode

Properti

Metode

CollisionGroupSetCollidable

void

Tetapkan status tabrakan antara dua grup. Metode ini akan menghasilkan kesalahan jika salah satu dari grup tidak terdaftar, jadi disarankan agar Anda mengkonfirmasi pendaftaran masing-masing grup melalui PhysicsService:IsCollisionGroupRegistered() sebelum membuat panggilan ini.

Parameter

name1: string
name2: string
collidable: bool

Memberikan nilai

void

CollisionGroupsAreCollidable

Mengembalikan apakah kedua kelompok tabrakan yang ditentukan akan bertabrakan. Metode ini juga akan mengembalikan true jika salah satu dari kelompok tidak terdaftar, karena topeng tabrakan default bertabrakan dengan semua kelompok.

Parameter

name1: string
name2: string

Memberikan nilai

GetMaxCollisionGroups

Mengembalikan jumlah maksimum kelompok bentrokan yang didukung oleh mesin.Nilai ini saat ini adalah 32.


Memberikan nilai

GetRegisteredCollisionGroups

Mengembalikan tabel dengan informasi tentang semua kelompok tabrakan tempat. Setiap nilai dalam tabel yang dikembalikan adalah tabel sendiri dan berisi dua anggota:


<tbody>
<tr>
<td>topeng</td>
<td>float</td>
<td>Topeng grupbertabrakan; hanya untuk penggunaan internal.</td>
</tr>
<tr>
<td>nama</td>
<td>string</td>
<td>Nama grupbentrokan.</td>
</tr>
</tbody>
AnggotaJenisDeskripsi

Memberikan nilai

IsCollisionGroupRegistered

Memeriksa apakah kumpulan tabrakan terdaftar. Disarankan agar Anda menelepon metode ini sebelum menelepon metode yang menghasilkan kesalahan untuk kumpulan tabrakan yang tidak terdaftar, seperti PhysicsService:CollisionGroupSetCollidable() .

Parameter

name: string

Memberikan nilai

RegisterCollisionGroup

void

Mendaftar kumpulan tabrakan baru dengan nama yang diberikan. Nama tidak boleh menjadi "Default" .

Catat bahwa metode ini memiliki sedikit overlay kinerja berdasarkan jumlah BaseParts di ruang kerja, jadi direkomendasikan agar Anda mendaftarkan semua kelompok bentrokan di waktu pengeditan melalui editor Studio dan panggil

Parameter

name: string

Memberikan nilai

void

Contoh Kode

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

void

Ganti nama grupkollisi yang terdaftar, tetapi tidak Class.BasePart.CollisionGroup|CollisionGroup nama properti bagian yang menggunakan grup. Pertama argument dari metode ini adalah nama kelompok untuk diubah,

Metode ini akan menghasilkan kesalahan pada kondisi berikut:

  • Nama yang tidak valid atau kosong diberikan untuk salah satu argumen.
  • Metode ini dianggap dari klien.

Catat bahwa metode ini memiliki sedikit overlay kinerja berdasarkan jumlah BaseParts di ruang kerja, jadi direkomendasikan agar Anda mendaftarkan semua grup kolisi di waktu pengeditan melalui editor Studio dan mengganti nama mereka sebanyak mungkin setiap mungkin.

Parameter

from: string
to: string

Memberikan nilai

void

UnregisterCollisionGroup

void

Unregisters kelompok kollision untuk nama yang diberikan, dengan perilaku berikut:

  • Jika nama yang tidak valid diberikan, metode tidak akan melakukan apa-apa.
  • Jika nama yang direservasi "Default" diberikan atau jika metode dianggil dari klien, itu akan menghasilkan kesalahan.
  • Jika ada bagian dalam kumpulan tabrakan ketika dihapus, bagian-bagian ini masih akan mempertahankan nama kumpulan tabrakan yang sama. Perilaku fisik bagian dalam kumpulan yang dihapus tidak dijelaskan, jadi disarankan untuk pindahkan bagian apa pun di kumpulan yang dihapus ke gruplain, seperti grup"Default" .

Catat bahwa metode ini memiliki sedikit overlay kinerja berdasarkan jumlah BaseParts di ruang kerja, jadi direkomendasikan agar Anda mendaftarkan semua kelompok bentrokan di waktu pengeditan melalui editor Studio dan panggil metode ini seefekifienya mungkin.

Parameter

name: string

Memberikan nilai

void

Acara