In-experience Tools sono strumenti interattivi che gli utenti possono equipaggiare nelle sessioni, come spade, lanciatori di razzi e bacchette magiche.Puoi creare strumenti personalizzati in-experience, metterli nella gerarchia della tua esperienza e scrivere script per implementarli per i tuoi utenti.
Crea uno strumento in-esperienza
Per il primo passo per creare qualsiasi strumento in-experience, devi creare un oggetto strumento per contenere tutti gli elementi che compongono lo strumento.Puoi quindi aggiungere altre istanze all'oggetto strumento incluse parti e mesh , effetti sonori e script che forniscono funzionalità.Puoi anche configurare un manico di strumento, regolare la presa dello strumento e personalizzare l'icona dello strumento per migliorare l'esperienza dell'utente.
Crea l'oggetto strumento
Puoi creare un nuovo oggetto strumento con i seguenti passaggi:
Nella finestra Explorer , passa il mouse su Area di lavoro e clicca il pulsante ⊕ per mostrare l'elenco degli oggetti.
Seleziona Strumento sotto la categoria Interazione .
Aggiungi parti o mesh
Dopo aver creato l'oggetto tool, devi aggiungere Parts o MeshParts al modello di strumento o creare lo strumento come oggetto inventario senza parti e mesh.Come altri modelli, gli strumenti in-experience possono consistere in più di Parts , quindi devi connettere tutte le parti dello strumento insieme usando le restrizioni Weld.
Se vuoi creare uno strumento senza aggiungere parti o mesh, puoi crearlo come oggetto inventario.
Imposta la gestiredello strumento
Per abilitare agli utenti di portare strumenti in giro, devi impostare un Part e chiamarlo Handle per attaccarlo alla mano dell'utente.L'esempio seguente mostra una bacchetta magica con tre parti: una punta luminosa, il corpo principale e una gestirerossa.Quando un utente equipaggia la bacchetta, la tiene al Part nominata Handle .

Assicurati di avere solo uno Part nominato Handle .Se nomini più Parts come Handle, lo strumento sceglie casualmente uno di essi come punto di attacco della mano che potrebbe causare problemi come gli utenti che tengono le lame delle spade invece di hilt.
Aggiusta l'orientamento della presa dello strumento
Se l'orientamento della presa del tuo strumento è errato, come trascinare a terra o guardare all'indietro, puoi correggerlo regolando le proprietà presa sotto la categoria Apparenza nella finestra Proprietà .

Poiché l'orientamento della presa ideale per ogni strumento è diverso, devi sperimentare con il cambio dei valori accanto al GripForward , GripRight e GripUp proprietà fino a quando la presa del tuo strumento non appare corretta.L'esempio seguente mostra le possibili impugnature errate e corrette per una bacchetta magica:



Puoi anche abilitare i personaggi utente a compensare gli strumenti dalla loro mano con la Proprietà GripPos .Questo può essere utile quando si crea uno strumento che dovrebbe apparire sulle spalle dell'utente.


Personalizza l'Iconadello strumento
Gli strumenti che un utente possiede vengono memorizzati nel loro . Gli utenti possono visualizzare l'icona di ciascuno strumento nei loro zaini su una barra d'azione :

Nella finestra Proprietà della tool, usa le seguenti proprietà per personalizzare l'aspetto dello strumento nella barra d'azione:
- TextureID — L'Iconadell'attrezzo. Imposta l'ID dell'immagine per questa proprietà allo stesso modo di adesivi e pulsanti di immagine.
- ToolTip — Il nome del tooltip in fase di hover.
Abilita e disabilita gli utenti a rilasciare strumenti
Per impostazione predefinita, un utente può rilasciare uno strumento premendo il tasto Backspace su Windows o elimina su Mac.Puoi disabilitare questa opzione impostando la proprietà CanBeDropped dello strumento a false .Se CanBeDropped è false , premendo Backspace o delete restituisce lo strumento allo zaino dell'utente.
Crea strumenti come oggetti inventario
Puoi anche creare uno strumento in-experience senza parti o mesh come oggetto inventario che attende l'input dell'utente, come un incantesimo che i personaggi dell'utente possono fare clic sugli altri o toccare lo schermo per lanciarlo.Gli strumenti dell'inventario non richiedono maniglie, quindi devi deselezionare la proprietà RequiresHandle nella finestra Proprietà dello strumento.

Aggiungi strumenti alla tua esperienza
Una volta che hai finito di configurare il tuo strumento in-experience, devi posizionarlo nell'area appropriata della gerarchia oggetti della tua esperienza.Dove posizioni lo strumento all'interno della gerarchia dell'oggetto dell'esperienza dipende dall'uso previsto.
strumentodi avvio predefinito
Se vuoi che tutti gli utenti inizino con uno strumento nel loro Inventario, reportorio, mettilo all'interno della cartella StarterPack .Quando un utente si genera, il sistema copia lo strumento nel suo zaino.

Strumento da strumento
Se vuoi consentire agli utenti di raccogliere strumenti mentre si Sposta, puoi posizionare gli strumenti nell' area di lavoro nella gerarchia esploratore .Ad esempio, potresti voler posizionare un super razzo lanciatore in un'area difficile da raggiungere del tuo Mondodi esperienza.

strumentoguadagnato e acquistato
Se vuoi impostare uno strumento come premi quando un utente fa qualcosa di speciale o lo offre in vendita in un Negozioin-experience, metti lo strumento all'interno di ServerStorage nella gerarchia di Explorer , che può clonare lo strumento allo zaino dell'utente al momento opportuno.

Aggiungi effetti degli strumenti
Dopo aver aggiunto i tuoi strumenti alla tua esperienza, puoi aggiungere script per consentire agli utenti di utilizzare gli strumenti per fare effetti speciali.
Eventi specifici per strumenti
Puoi utilizzare le seguenti quattro condizioni specifiche per gli strumenti che indicano lo stato dello strumento e l'input dell'utente con esso nel tuo script di strumento:
Tool:Equipped() : Si verifica quando l'utente seleziona lo strumento dal suo zaino.
Tool:Unequipped() : Si verifica quando l'utente rilascia lo strumento o cambia gli strumenti.
Tool:Activated() : Si verifica quando l'utente inizia ad attivare lo strumento (clicca, tocca o premere A su un gamepad).
Tool:Deactivated() : Si verifica quando l'utente interrompe l'input di attivazione (rilascia il pulsante o il tocco).
Anche se potresti non aver bisogno di tutte e quattro le condizioni quando progetti uno strumento, puoi utilizzare lo script del codice seguente come modello di script di strumento di base:
local tool = script.Parent
local function onEquip()
print("The tool is now equipped.")
end
local function onUnequip()
print("The tool is now unequipped.")
end
local function onActivate()
print("The tool is now activated.")
end
local function onDeactivate()
print("The tool is now deactivated.")
end
tool.Equipped:Connect(onEquip)
tool.Unequipped:Connect(onUnequip)
tool.Activated:Connect(onActivate)
tool.Deactivated:Connect(onDeactivate)
Questo esempio di codice suppone che lo script sia un figlio di primo livello all'interno dell'oggetto strumento.Se lo script è altrove, regola il percorso in linea 1 (il valore di tool ) per puntare all'oggetto strumento principale.
Aggiungi uno script di base
L'esempio seguente mostra i passaggi per aggiungere un Script sul server che consente agli utenti di equipaggiare una bacchetta magica che può cambiare giorno e notte facendo clic sullo schermo:
Nella finestra Explorer, passa il mouse sull'oggetto strumento e fai clic sul pulsante ⊕ per inserire un Script .
Copia il seguente codice e incollalo nel tuo Script .
local Lighting = game:GetService("Lighting")local tool = script.Parentlocal function onActivate()if Lighting.ClockTime >= 8 and Lighting.ClockTime < 16 thenLighting.ClockTime = 20elseLighting.ClockTime = 8endendtool.Activated:Connect(onActivate)Prova la tua esperienza prendendo lo strumento e quindi facendo clic ovunque sullo schermo della tua esperienza per passare da un giorno all'altro:
Diversi tipi di script per l'implementazione degli strumenti
Alcuni strumenti hanno bisogno solo di un Script sul server per essere implementati, come l'esempio precedente, ma la maggior parte degli strumenti richiede sia un Script sul server e un LocalScript sul client, dove ciascuno si prende cura di determinati aspetti del comportamento dello strumento.
Prima di aggiungere gli script, assicurati di comprendere la differenza principale tra ogni inserisci / scrividi script:
- Script gestisce i cambiamenti all'interno del mondo esperienza generale visibile a tutti gli utenti, come l'apertura di una porta e il lancio di una freccia.
- LocalScript gestisce le cose che accadono solo sul Dispositivodell'utente, come la rilevazione della posizione in cui toccano o fanno clic sullo schermo.
Ecco alcuni strumenti di esempio e i loro comportamenti gestiti da uno script locale o da uno script del server:
Strumento | Scrittura locale | scriptdel server |
---|---|---|
Bacchetta del creatore | Rileva dove il giocatore tocca o clicca sullo schermo. | Crea una nuova parte nella posizione all'interno del mondo del gioco in cui il giocatore ha toccato o cliccato. |
Mantello dell'invisibilità | Rende temporaneamente il giocatore invisibile a tutti gli altri utenti, mentre la cappa è equipaggiata. | |
Mega-Arco | Rileva quanto tempo il giocatore attiva lo strumento (tempo tra l'attivazione e la disattivazione). | Spara una freccia magica con potere maggiore o minore, a seconda del tempo di attivazione rilevato. |
Per maggiori informazioni sui diversi tipi di script, vedi Script.
Suggerimenti per la risoluzione dei problemi
Uno strumento potrebbe funzionare bene in Studio ma non in un'esperienza Roblox dal vivo. Se ciò si verifica, usa i seguenti suggerimenti per la risoluzione dei problemi:
- LocalScripts e Scripts non possono ascoltarsi direttamente l'un l'altro, quindi devi aggiungere un RemoteEvent per inviare messaggi tra i due script.
- Assicurati che ciascuno di Script e LocalScript si occupi solo di ciò che dovrebbe fare esattamente.
Per ulteriori informazioni su RemoteEvents , vedi Eventi remoti e richiami .