PhysicsService

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Brak możliwości tworzenia
Usługa

PhysicsService Przede wszystkim zawiera metody pracy z grupami kolizji , które określają, czy zestaw części może lub może nie kolidować z częściami w innych grupach kolizji. Możesz rejestrować grupę kolizji poprze

Tworzenie, usuwanie i modyfikowanie związków kolizji między grupami kolizji jest ograniczone do serwerowej strony Scripts .

Zobacz Filtrowanie kolizji dla szczegółów użycia w Studio i w skryptach.

Podsumowanie

Metody

Właściwości

Metody

CollisionGroupSetCollidable

void

Ustawia stan kolizji między dwoma grupami. Ta metoda będzie wykonywać błąd, jeśli jedna z grup nie jest zarejestrowana, więc zaleca się, abyś potwierdził rejestrację każdej z grup poprzez PhysicsService:IsCollisionGroupRegistered() przed wykonaniem tego wezwania.

Parametry

name1: string
name2: string
collidable: bool

Zwroty

void

CollisionGroupsAreCollidable

Zwraca, czy dwa określone grupy kolizji będą się kolidować. Ta metoda zwraca również prawdę, jeśli jedna z grup nie jest zarejestrowana, ponieważ domyślna maska kolizji koliduje z wszystkimi grupami.

Parametry

name1: string
name2: string

Zwroty

GetMaxCollisionGroups

Wyświetla maksymalną liczbę grup kolizji, które wspiera silnik. Wartość ta wynosi obecnie 32.


Zwroty

GetRegisteredCollisionGroups

Wyświetla tabelę z informacjami o wszystkich grupach kolizji miejsce. Każda wartość w tabeli zwracanej jest samą w tabeli i zawiera dwa członki:


<tbody>
<tr>
<td>maseczka</td>
<td>liczby</td>
<td>Maska grupakolizji; tylko do użytku wewnętrznego.</td>
</tr>
<tr>
<td>imię</td>
<td>ciąg</td>
<td>Nazwa grupakolizji.</td>
</tr>
</tbody>
CzłonekTypOpis

Zwroty

IsCollisionGroupRegistered

Sprawdza, czy jest zapisana grupa kolizji. Rozważa się, że powinieneś wezwywać ten metodę, zanim wzywasz metody, które rzucają błędami dla niezarejestrowanych grup kolizji, takich jak PhysicsService:CollisionGroupSetCollidable() .

Parametry

name: string

Zwroty

RegisterCollisionGroup

void

Rejestruje nową grupę kolizji z podaną nazwą. Nazwa nie może być "Default" .

Uwaga, że ten metodowy ma niewielkie opóźnienie w zależności od liczby BaseParts w przestrzeni roboczej, więc zaleca się, abyście rejestrowali wszystkie grupy kolizji poprzez Studio edytora i wzywaliście

Parametry

name: string

Zwroty

void

Przykłady kodu

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

Zmienia nazwę zarejestrowanej grupakolizji, ale nie nie zmienia nazwę CollisionGroup grup, które korzystają z grupa. Pierwszym argumentem tego metody jest nazwa grupy do zmiany, drugi argument to now

Ten metodowy będzie rzucał błędem czasu uruchomienia w następujących sytuacjach:

  • Nieprawidłowo lub pusty nazwa dla dowolnego argumentu.
  • Method jest wezwany z klienta.

Uwaga, że ten metodowy ma niewielkie opóźnienie w zależności od liczby BaseParts w przestrzeni roboczej, więc zaleca się, abyście rejestrowali wszystkie grupy kolizji poprzez Studio edytora i nazywali je tak często, jak to możliwe.

Parametry

from: string
to: string

Zwroty

void

UnregisterCollisionGroup

void

Nierejestruje grupy kolizji dla podanego nazwy, z następującymi zachowaniami:

  • Jeśli nie zostanie podany ważny nazwa, metoda nie zrobi nic.
  • Jeśli zarezerwowany nazwa "Default" jest dostarczany lub jeśli metoda jest wezwana z klienta, będzie rzucać błąd.
  • Jeśli istnieją jakiekolwiek części w grupie kolizji, gdy zostaną usunięte, te części nadal będą mieć tę samą nazwę grupy kolizji. Fizyczne zachowanie części w grupie usuniętej jest niezdefiniowane, więc zaleca się przenieść wszystkie części w grupie usuniętej do innej grupy, takiej jak grupa "Default".

Uwaga, że ten metodowy ma niewielkie opóźnienie w zależności od liczby BaseParts w przestrzeni roboczej, więc zaleca się, abyście rejestrowali wszystkie grupy kolizji poprzez edytor Studio edytor i wzywaliście ten metodowy tak często, jak to możliwe.

Parametry

name: string

Zwroty

void

Zdarzenia