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 w grze Tools 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 zaprojektować narzędzia i umieścić je w ekwipunku gracza lub rozmieścić je po świecie jako przedmioty do zbierania.

Stwórz narzędzie w grze

Obiekt Tool jest podstawą każdego narzędzia w Roblox, więc musisz 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/kupionym.

  1. W hierarchii Eksploratora najedź na Workspace, kliknij przycisk i wstaw Tool.

    Obiekt narzędzia utworzony w przestrzeni roboczej
  2. Z nowo wybranym 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 zasobu obrazu dla narzędzia w ekwipunku gracza.
    • ToolTip — Nazwa podpowiedzi wyświetlana po najechaniu 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 ich wejście.

Fizyczne narzędzie

Po utworzeniu instancji Tool dla fizycznego narzędzia, będziesz musiał dodać części/siatki, aby skomponować jego wygląd w świecie 3D. Będziesz także musiał dołączyć uchwyt, który postacie graczy trzymają.

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 elementów, pamiętaj, aby połączyć je wszystkie razem 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 RightHand części ciała modelu postaci (R15) lub części Right Arm (R6).

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

Poniższy przykład pokazuje narzędzie z trzema instancjami: siatką Handle, RopeConstraint i siatką latarni, która wisi na linie.

Dostosuj pozycję/orientację uchwytu

Właściwość Grip narzędzia to CFrame, która określa, jak narzędzie jest umiejscowione i orientowane w stosunku do postaci, która je trzyma.

Ponieważ idealna pozycja/orientacja uchwytu różni się dla każdego narzędzia, będziesz musiał eksperymentować z wartościami, aż uchwyt twojego narzędzia będzie wyglądał poprawnie. Poniższy przykład pokazuje możliwe niepoprawne i poprawne ustawienia Grip dla wiszącej latarni:

Latarnia ciągnąca się po ziemi z Grip.Position równym (0, -2, 0) i Grip.Orientation równym (-90, 0, 0)
Latarnia 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 ich wejście. Na przykład, gra fabularna może zawierać szereg 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:

Dodaj narzędzia do gry

Gdy skończysz tworzyć swoje narzędzie w grze, będziesz musiał umieścić je w odpowiednim miejscu w hierarchii Eksploratora. Gdzie umieścisz narzędzie w hierarchii, zależy od jego zamierzonego użycia.

Ekwipunek gracza

Jeśli chcesz, aby wszyscy gracze zaczynali z narzędziem w swoim ekwipunku, umieść je w kontenerze StarterPack. Gdy jakikolwiek gracz się pojawi, system kopiuje narzędzie do jego Backpack. Stamtąd gracz może wyposażyć narzędzie, klikając jego ikonę w ekwipunku lub naciskając powiązany klawisz skrótu, taki jak 1 lub 2.

Zauważ, że narzędzia są kopiowane do ekwipunku gracza (Backpack) w kolejności, w jakiej zostały dodane do StarterPack. Aby uzyskać bardziej kontrolowaną kolejność, 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 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 umożliwić graczom zbieranie fizycznych narzędzi podczas eksploracji świata 3D, umieść narzędzia w Workspace, tak jak normalne obiekty 3D. Zebrane narzędzia będą automatycznie wyposażane i dodawane 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ędzi nie powinny być zazwyczaj Anchored, ponieważ postacie graczy utkną w miejscu, gdy podniosą lub wyposażą zakotwiczone narzędzie. Jednak jeśli chcesz zakotwiczyć kolekcjonerskie narzędzie w określonym miejscu w świecie 3D, takim jak unoszenie się nieco nad ziemią, możesz dodać następujący Script do narzędzia, aby odkotwiczyć 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/kupione

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 w ReplicatedStorage. Stamtąd możesz Clone() narzędzie do Backpack 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")
-- Utwó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

Wdrażanie efektów narzędzi

Po dodaniu narzędzi do swojej gry, możesz wdrożyć skrypty, aby umożliwić graczom korzystanie z ich narzędzi i wykonywanie pożądanych akcji. Następujące zdarzenia specyficzne dla narzędzi wskazują stan narzędzia i wejście gracza z nim.

  • Equipped() — Wywoływane, gdy gracz wybiera narzędzie z plecaka.
  • Unequipped() — Wywoływane, gdy gracz zmienia narzędzia lub upuszcza narzędzie.
  • Activated() — Wywoływane, gdy gracz zaczyna aktywować narzędzie (klika, dotyka lub naciska tylny prawy spust na kontrolerze).
  • Deactivated() — Wywoływane, gdy gracz przestaje aktywować (zwalnia przycisk lub dotyk).
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)

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

Poniżej znajdują się przykłady narzędzi i ich zachowań zarządzanych przez LocalScript lub Script:

NarzędzieLocalScriptScript
Różdżka TwórcyWykrywa, gdzie gracz aktywuje narzędzie (Activated()).Tworzy nową część w miejscu w świecie 3D, gdzie gracz dotknął lub kliknął.
Peleryna NiewidzialnościWykrywa, kiedy gracz wyposaża narzędzie (Equipped()) lub zdejmuje narzędzie (Unequipped()).Sprawia, że gracz staje się niewidzialny dla wszystkich innych graczy, gdy peleryna jest wyposażona, i przywraca gracza do pełnej widoczności, gdy peleryna jest zdjęta.
Mega-ŁukWykrywa, jak długo gracz aktywuje narzędzie (czas między Activated() a 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.