Strumenti in gioco

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Gli Tools in gioco sono strumenti interattivi che i giocatori possono equipaggiare durante le sessioni, come armi, bacchette magiche, torce, chiavi e altro ancora. Puoi progettare strumenti e includerli nell'inventario di un giocatore o posizionarli nel mondo come oggetti da raccogliere.

Crea uno strumento in gioco

L'oggetto Tool è la base di qualsiasi strumento in Roblox, quindi dovrai crearne uno. È più facile visualizzare come appare uno strumento progettandolo in Workspace, e successivamente puoi farlo diventare un elemento di inventario o un elemento guadagnato/acquistato.

  1. Nella gerarchia dell'Esplora, passa il mouse su Workspace, fai clic sul pulsante e inserisci un Tool.

    Oggetto strumento creato nello spazio di lavoro
  2. Con il nuovo Tool selezionato, accedi alla finestra delle Proprietà e personalizza come apparirà lo strumento nell'inventario del giocatore:

    • TextureId — Specifica l'ID dell'asset immagine per lo strumento nell'inventario di un giocatore.
    • ToolTip — Il nome del tooltip al passaggio del mouse per lo strumento nell'inventario di un giocatore.
  3. Decidi se lo strumento sarà un strumento fisico nell'ambiente 3D (il più comune) o uno strumento non fisico che occupa semplicemente l'inventario di un giocatore e risponde ai loro input.

Strumento fisico

Dopo aver creato l'istanza Tool per uno strumento fisico, dovrai aggiungere parti/mesh per comporre il suo aspetto nel mondo 3D. Dovrai anche includere un manico che i personaggi dei giocatori afferrano.

Aggiungi parti/mesh

Gli strumenti in gioco possono consistere in una o più Parts e/o MeshParts. Se costruisci lo strumento di più pezzi, ricorda di collegarli tutti insieme utilizzando WeldConstraints o altri vincoli meccanici in modo che lo strumento rimanga intatto come un'unità mentre il giocatore lo trasporta.

Selettori di vincoli indicati nella barra degli strumenti di Studio

Imposta il manico

Per consentire ai giocatori di trasportare gli strumenti, una parte dello strumento deve essere chiamata Handle. Qui è dove lo strumento si attaccherà alla parte del corpo RightHand del modello del personaggio (R15) o alla parte Right Arm (R6).

Se lo strumento è composto da un solo MeshPart, basta chiamare quella parte Handle. In caso contrario, puoi includere una parte separata chiamata Handle come figlio diretto del genitore Tool e poi attaccarla a un'altra parte con un WeldConstraint o vincolo meccanico.

Il seguente esempio mostra uno strumento con tre istanze: la mesh Handle, un RopeConstraint e una mesh di lanterna che pende dalla corda.

Regola la posizione/orientamento della presa

La proprietà Grip dello strumento è un CFrame che specifica come lo strumento è posizionato e orientato rispetto al personaggio che lo tiene.

Poiché la posizione/orientamento ideale della presa è diversa per ogni strumento, dovrai sperimentare con i valori finché la presa del tuo strumento non appare corretta. Il seguente esempio mostra impostazioni Grip potenzialmente errate e corrette per la lanterna appesa:

Lanterna che trascina a terra con Grip.Position di (0, -2, 0) e Grip.Orientation di (-90, 0, 0)
Lanterna davanti al personaggio con Grip.Position di (0, -1.5, 0) e Grip.Orientation di (25, 0, 0)

Strumento non fisico

Uno strumento Tool non fisico occupa semplicemente l'inventario di un giocatore e risponde ai loro input. Ad esempio, un gioco di ruolo potrebbe presentare una serie di incantesimi magici che i giocatori possono "lanciare" attraverso il loro inventario.

Gli strumenti non fisici non richiedono alcuna composizione 3D e non utilizzano una parte Handle, quindi dovresti disabilitare la proprietà RequiresHandle dello strumento:

Aggiungi strumenti a un gioco

Una volta che hai finito di creare il tuo strumento in gioco, dovrai posizionarlo nell'area corretta della gerarchia dell'Esplora. Dove posizioni lo strumento nella gerarchia dipende dal suo utilizzo previsto.

Inventario del giocatore

Se desideri che tutti i giocatori inizino con uno strumento nel loro inventario, mettilo all'interno del contenitore StarterPack. Quando un giocatore spawna, il sistema copia lo strumento nel loro Backpack. Da lì, il giocatore può equipaggiare lo strumento facendo clic sulla sua icona nell'inventario o premendo il tasto di scelta rapida associato come 1 o 2.

Nota che gli strumenti vengono copiati nell'inventario del giocatore (Backpack) nell'ordine in cui sono stati aggiunti a StarterPack. Per un ordinamento più controllato, puoi aggiungere uno LocalScript a StarterPack che sposta temporaneamente gli strumenti in ReplicatedStorage e poi li ri-genitore a Backpack nell'ordine specificato nella tabella order.

Riordina Inventario
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
-- Ri-genitore gli strumenti nello zaino nell'ordine specificato
for i = 1, #order do
local tool = ReplicatedStorage:FindFirstChild(order[i])
if tool then
tool.Parent = backpack
end
end

Strumento collezionabile

Se desideri consentire ai giocatori di raccogliere strumenti fisici mentre esplorano il mondo 3D, posiziona gli strumenti in Workspace proprio come oggetti 3D normali. Gli strumenti raccolti verranno automaticamente equipaggiati e aggiunti all'inventario del giocatore (non è necessario aggiungere rilevamento delle collisioni extra affinché i personaggi afferrino lo strumento).

Come notato nella sezione aggiungi parti/mesh, le parti degli strumenti non dovrebbero tipicamente essere Anchored, poiché i personaggi dei giocatori rimarranno bloccati in posizione quando raccolgono o equipaggiano uno strumento ancorato. Tuttavia, se desideri ancorare uno strumento collezionabile in un luogo specifico nel mondo 3D, come fluttuare leggermente sopra il suolo, puoi aggiungere il seguente Script allo strumento per disancorare le sue parti al momento della raccolta.

Disancora Strumento all'Equipaggiamento/Raccolta
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)

Strumento guadagnato/acquistato

Se desideri impostare strumenti come premi per quando i giocatori completano compiti, o offrire strumenti in vendita in un negozio in gioco, metti quegli strumenti all'interno di ReplicatedStorage. Da lì, puoi Clone() uno strumento nell'Backpack del giocatore al momento opportuno.

Clona Strumento nell'Inventario del Giocatore
local Players = game:GetService("Players")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local backpack = player:WaitForChild("Backpack")
-- Crea un clone dello strumento
local tool = ReplicatedStorage:FindFirstChild("WaterSpell")
if tool then
local clone = tool:Clone()
clone.Parent = backpack -- Aggiunge il clone allo zaino del giocatore
end

Implementa effetti degli strumenti

Dopo aver aggiunto strumenti al tuo gioco, puoi implementare script per consentire ai giocatori di utilizzare i loro strumenti e svolgere le azioni desiderate. I seguenti eventi specifici degli strumenti indicano lo stato dello strumento e l'input del giocatore con esso.

  • Equipped() — Si attiva quando il giocatore seleziona lo strumento dal proprio zaino.
  • Unequipped() — Si attiva quando il giocatore cambia strumento o lascia cadere lo strumento.
  • Activated() — Si attiva quando il giocatore inizia ad attivare lo strumento (clicca, tocca o preme il grilletto posteriore destro su un gamepad).
  • Deactivated() — Si attiva quando il giocatore smette di attivare l'input (rilascia il pulsante o il tocco).
Template Eventi Strumento
local tool = script.Parent
local function onEquip()
print(tool.Name, "strumento equipaggiato")
end
local function onUnequip()
print(tool.Name, "strumento disequipaggiato")
end
local function onActivate()
print(tool.Name, "strumento attivato")
end
local function onDeactivate()
print(tool.Name, "strumento disattivato")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)

Gli eventi degli strumenti si attivano solo negli LocalScripts lato client perché solo il dispositivo del giocatore sa quando avviene l'input. Di conseguenza, la maggior parte degli strumenti richiede sia uno LocalScript che uno Script lato server, dove ciascuno gestisce determinati aspetti del comportamento dello strumento e un RemoteEvent passa informazioni dal client al server (vedi eventi remoti e callback per ulteriori informazioni).

Di seguito sono riportati esempi di strumenti e i loro comportamenti gestiti da uno LocalScript o uno Script:

StrumentoLocalScriptScript
Bacchetta del CreatoreRileva dove il giocatore attiva lo strumento (Activated()).Crea una nuova parte nella posizione all'interno del mondo 3D dove il giocatore ha toccato o cliccato.
Mantello dell'InvisibilitàRileva quando il giocatore equipaggia lo strumento (Equipped()) o disequipaggia lo strumento (Unequipped()).Rende il giocatore invisibile a tutti gli altri giocatori mentre il mantello è equipaggiato e ripristina la piena visibilità del giocatore quando il mantello è disequipaggiato.
Mega‑ArcoRileva quanto a lungo il giocatore attiva lo strumento (tempo tra Activated() e Deactivated()).Spara una freccia magica con potenza maggiore o minore, a seconda del tempo di attivazione rilevato.
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.