Narzędzia w grze

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

Narzędzia Tools w grze to interaktywne narzędzia, które gracze mogą wyposażyć w sesjach, takie jak broń, magiczne różdżki, latarki, klucze i inne. Możesz projektować narzędzia i dodawać je do ekwipunku gracza lub umieszczać je w świecie jako przedmioty do podnoszenia.

Stwórz narzędzie w grze

Obiekt Tool jest podstawą każdego narzędzia w Roblox, więc będziesz musiał stworzyć jeden. Łatwiej jest podglądać, jak wygląda narzędzie, projektując je w Workspace, a później możesz uczynić je przedmiotem ekwipunku lub przedmiotem zdobytym/zakupionym.

  1. W hierarchii Eksploratora najedź na Workspace, kliknij przycisk , a następnie wstaw Tool.

    Obiekt narzędzia utworzony w przestrzeni roboczej
  2. Z wybranym nowym Tool, uzyskaj dostęp do okna Właściwości i dostosuj, jak narzędzie będzie wyglądać w ekwipunku gracza:

    • TextureId — Określa identyfikator obrazu zasobu dla narzędzia w ekwipunku gracza.
    • ToolTip — Nazwa podpowiedzi wyświetlana po najechaniu myszką na narzędzie w ekwipunku gracza.
  3. Zdecyduj, czy narzędzie będzie fizycznym narzędziem w środowisku 3D (najczęściej) czy niefizycznym narzędziem, które po prostu zajmuje miejsce w ekwipunku gracza i reaguje na jego wejście.

Fizyczne narzędzie

Po utworzeniu instancji Tool dla fizycznego narzędzia, będziesz musiał dodać części/siatki, aby nadać mu wygląd w 3D. Będziesz także musiał dołączyć uchwyt, którym postacie gracza będą mogły trzymać narzędzie.

Dodaj części/siatki

Narzędzia w grze mogą składać się z jednej lub więcej Parts i/lub MeshParts. Jeśli skonstruujesz narzędzie z wielu części, pamiętaj, aby połączyć je wszystkie za pomocą WeldConstraints lub innych ograniczeń mechanicznych, aby narzędzie pozostało w całości, gdy gracz je nosi.

Wskaźniki ograniczeń wskazane w pasku narzędzi Studio

Ustaw uchwyt

Aby umożliwić graczom noszenie narzędzi, jedna część narzędzia musi być nazwana Handle. To tutaj narzędzie będzie przymocowane do części modelu postaci RightHand (R15) lub Right Arm (R6).

Jeśli narzędzie składa się z jednej MeshPart, po prostu nazwij tę część Handle. W przeciwnym razie możesz dodać osobną część nazwaną Handle jako bezpośrednie dziecko rodzica Tool i następnie połączyć ją z inną częścią za pomocą WeldConstraint lub ograniczenia mechanicznego.

Poniższy przykład pokazuje narzędzie z trzema instancjami: siatką Handle, RopeConstraint i siatką latarki, która zwisa z liny.

Dostosuj położenie/orientację chwytu

Właść Grip narzędzia jest CFrame, która określa, jak narzędzie jest umiejscowione i zorientowane względem postaci, która je trzyma.

Ponieważ idealne położenie/orientacja chwytu są różne dla każdego narzędzia, będziesz musiał eksperymentować z wartościami, aż wygląd chwytu twojego narzędzia będzie poprawny. Poniższy przykład pokazuje możliwe nieprawidłowe i prawidłowe ustawienia Grip dla wiszącej latarki:

Latarka ciągnąca się po ziemi z Grip.Position równym (0, -2, 0) i Grip.Orientation równym (-90, 0, 0)
Latarka przed postacią z Grip.Position równym (0, -1.5, 0) i Grip.Orientation równym (25, 0, 0)

Niefizyczne narzędzie

Niefizyczne Tool po prostu zajmuje miejsce w ekwipunku gracza i reaguje na jego wejście. Na przykład, gra fabularna może zawierać serię magicznych zaklęć, które gracze mogą "rzucać" przez swój ekwipunek.

Niefizyczne narzędzia nie wymagają żadnej kompozycji 3D i nie wykorzystują części Handle, więc powinieneś wyłączyć właściwość RequiresHandle narzędzia:

Dodawanie narzędzi do gry

Po zakończeniu tworzenia swojego narzędzia w grze, będziesz musiał umieścić je w odpowiednim miejscu w hierarchii Eksploratora. Miejsce, w którym umieszczasz narzędzie w hierarchii, zależy od zamierzonego użycia.

Ekwipunek gracza

Jeśli chcesz, aby wszyscy gracze zaczynali z narzędziem w swoim ekwipunku, umieść je wewnątrz kontenera StarterPack. Gdy którykolwiek gracz się pojawi, system kopiuje narzędzie do jego Backpack. Stamtąd gracz może wyposażyć narzędzie, klikając ikonę w ekwipunku lub naciskając przypisaną do niego kombinację klawiszy, taką jak 1 lub 2.

Pamiętaj, że narzędzia są kopiowane do ekwipunku gracza (Backpack) w kolejności, w jakiej zostały dodane do StarterPack. Aby uzyskać bardziej kontrolowany porządek, możesz dodać LocalScript do StarterPack, który tymczasowo przenosi narzędzia do ReplicatedStorage, a następnie ponownie przypisuje je do Backpack w kolejności określonej w tabeli order.

Reorder Inventory
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local order = {"WaterSpell", "FireSpell", "AirSpell", "EarthSpell"}
local backpack = script.Parent
for _, item in backpack:GetChildren() do
if item:IsA("Tool") then
item.Parent = ReplicatedStorage
end
end
-- Przypisz ponownie narzędzia do plecaka w określonej kolejności
for i = 1, #order do
local tool = ReplicatedStorage:FindFirstChild(order[i])
if tool then
tool.Parent = backpack
end
end

Kolekcjonerskie narzędzie

Jeśli chcesz pozwolić graczom zbierać fizyczne narzędzia podczas eksploracji świata 3D, umieść narzędzia w Workspace tak jak normalne obiekty 3D. Zebrane narzędzia zostaną automatycznie wyposażone i dodane do ekwipunku gracza (nie musisz dodawać dodatkowej detekcji kolizji, aby postacie mogły chwycić narzędzie).

Jak wspomniano w sekcji dodaj części/siatki, części narzędzia nie powinny zazwyczaj być Anchored, ponieważ postacie graczy utkną w miejscu, gdy podniosą lub wyposażą przymocowane narzędzie. Jeśli jednak chcesz przymocować narzędzie kolekcjonerskie w określonym miejscu w świecie 3D, takim jak unoszenie się tuż nad ziemią, możesz dodać następujący Script do narzędzia, aby odblokować jego części po zebraniu.

Unanchor Tool on Equip/Collect
local tool = script.Parent
tool.Equipped:Connect(function()
for _, part in tool:GetDescendants() do
if part:IsA("BasePart") and part.Anchored then
part.Anchored = false
end
end
end)

Narzędzie zdobyte/zakupione

Jeśli chcesz ustawić narzędzia jako nagrody za wykonanie zadań przez graczy lub oferować narzędzia na sprzedaż w sklepie w grze, umieść te narzędzia wewnątrz ReplicatedStorage. Stamtąd możesz Clone() narzędzie do plecaka gracza w odpowiednim czasie.

Clone Tool to Player's Inventory
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local backpack = player:WaitForChild("Backpack")
-- Stwórz klon narzędzia
local tool = ReplicatedStorage:FindFirstChild("WaterSpell")
if tool then
local clone = tool:Clone()
clone.Parent = backpack -- Dodaje klon do plecaka gracza
end

Wdrożenie efektów narzędzi

Po dodaniu narzędzi do swojej gry, możesz wdrożyć skrypty, aby umożliwić graczom korzystanie ze swoich narzędzi i wykonywanie pożądanych akcji. Poniższe wydarzenia specyficzne dla narzędzi wskazują stan narzędzia oraz wejście gracza z nim.

  • Equipped() — Wywołuje się, gdy gracz wybiera narzędzie z plecaka.
  • Unequipped() — Wywołuje się, gdy gracz zmienia narzędzia lub upuszcza narzędzie.
  • Activated() — Wywołuje się, gdy gracz zaczyna aktywować narzędzie (kliknięcia, dotknięcia lub naciskanie tylnego prawego spustu na gamepadzie).
  • Deactivated() — Wywołuje się, gdy gracz przestaje aktywować (zwalnia przycisk lub dotknięcie).
Tool Events Template
local tool = script.Parent
local function onEquip()
print(tool.Name, "narzędzie wyposażone")
end
local function onUnequip()
print(tool.Name, "narzędzie zdjęte")
end
local function onActivate()
print(tool.Name, "narzędzie aktywowane")
end
local function onDeactivate()
print(tool.Name, "narzędzie dezaktywowane")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)

Wydarzenia narzędzi wywołują się tylko w skryptach po stronie klienta LocalScripts, ponieważ tylko urządzenie gracza wie, kiedy zachodzi wejście. W związku z tym, większość narzędzi wymaga zarówno LocalScript, jak i skryptu po stronie serwera Script, przy czym każdy z nich obsługuje różne aspekty zachowania narzędzia, a RemoteEvent przekazuje informacje z klienta do serwera (zobacz wydarzenia zdalne i wywołania zwrotne po więcej informacji).

Poniżej znajdują się przykładowe narzędzia i ich zachowania zarządzane przez LocalScript lub Script:

NarzędzieLocalScriptScript
Różdżka StwórcyWykrywa, gdzie gracz aktywuje narzędzie (Activated()).Tworzy nową część w miejscu w świecie 3D, gdzie gracz dotknął lub kliknął.
Płaszcz NiewidzialnościWykrywa, gdy gracz wyposażai narzędzie (Equipped()) lub zdejmuje narzędzie (Unequipped()).Sprawia, że gracz staje się niewidzialny dla wszystkich innych graczy, gdy płaszcz jest wyposażony, i przywraca gracza do pełnej widoczności, gdy płaszcz jest zdjęty.
Mega‑ŁukWykrywa, jak długo gracz aktywuje narzędzie (czas między Activated() i Deactivated()).Strzela magiczną strzałą o większej lub mniejszej mocy, w zależności od wykrytego czasu aktywacji.
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.