PhysicsService
*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.
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
Ustawia stan kolizji między dwoma grupami.
Zwraca, czy dwa grupy zderzą się.
Wyświetla maksymalną liczbę grup kolizji.
Wyświetla tabelę z informacjami o wszystkich grupach kolizji miejsce.
Sprawdza, czy grupa kolizji jest zarejestrowana.
Rejestruje nową grupę kolizji z podanym nazwą.
Zmienia nazwę określonej grupakolizji.
Nie rejestruje grupy kolizji dla podanego nazwy.
Właściwości
Metody
CollisionGroupSetCollidable
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
Zwroty
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
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łonek | Typ | Opis |
---|
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
Zwroty
RegisterCollisionGroup
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
Zwroty
Przykłady kodu
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
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
Zwroty
UnregisterCollisionGroup
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.