En expérience Tools sont des outils interactifs que les utilisateurs peuvent équiper en sessions, tels que des épées, des lanceurs de roquettes et des baguettes magiques.Vous pouvez créer des outils personnalisés dans l'expérience, les mettre dans votre hiérarchie d'expérience et écrire des scripts pour les implémenter pour vos utilisateurs.
Créer un outil dans l'expérience
Pour la première étape de création de tout outil d'expérience, vous devez créer un objet d'outil pour contenir tous les éléments qui composent l'outil.Vous pouvez ensuite ajouter d'autres instances à l'objet d'outil y compris parties et mailles , effets sonores et scripts qui fournissent des fonctionnalités.Vous pouvez également configurer une poignée d'outil , ajuster la prise en main de l'outil , et personnaliser l'icône de votre outil pour améliorer l'expérience utilisateur.
Créer l'objet d'outil
Vous pouvez créer un nouvel objet d'outil avec les étapes suivantes :
Dans la fenêtre Explorateur , passez la souris sur Espace de travail et cliquez sur le bouton ⊕ pour afficher la liste des objets.
Sélectionnez outil sous la catégorie interaction .
Ajouter des parties ou des mailles
Après avoir créé l'objet d'outil, vous devez ajouter Parts ou MeshParts au modèle d'outil ou créer l'outil en tant qu'élément d'inventaire sans pièces et mailles sans pièces et mailles.Comme les autres modèles, les outils en expérience peuvent consister en plusieurs Parts , vous devez donc connecter toutes les parties de l'outil ensemble en utilisant les contraintes Weld .
Si vous souhaitez créer un outil sans ajouter de parties ou de mailles, vous pouvez le créer en tant qu'élément d'inventaire .
Définir la poignée de l'contrôleur
Pour permettre aux utilisateurs de transporter des outils, vous devez définir un Part et le nommer Handle pour s'attacher à la main de l'utilisateur.L'exemple suivant montre une baguette magique avec trois parties : un bout brillant, le corps principal et une contrôleurrouge.Lorsqu'un utilisateur équipe la baguette, il la maintient à la Part nommée Handle .

Assurez-vous d'avoir un seul Part nommé Handle.Si vous nommez plusieurs Parts comme Handle, l'outil choisit aléatoirement l'un d'entre eux comme point d'attache de la main qui pourrait causer des problèmes tels que les utilisateurs tenant des lames d'épées au lieu de haches.
Ajuster l'orientation de la poignée de l'outil
Si l'orientation de la prise de votre outil est incorrecte, comme le traînement sur le sol ou le fait de se tourner vers l'arrière, vous pouvez le corriger en ajustant les propriétés de poignée sous la catégorie apparence dans la fenêtre propriétés .

Puisque l'orientation de prise idéale pour chaque outil est différente, vous devez expérimenter le changement des valeurs à côté de la propriété GripForward , GripRight et GripUp jusqu'à ce que l'adhérence de votre outil soit correcte.L'exemple suivant montre les poignées incorrectes et correctes possibles pour une baguette magique :



Vous pouvez également activer les personnages utilisateurs pour compenser les outils de leur main avec la propriété GripPos .Cela peut être utile lors de la création d'un outil qui devrait apparaître sur l'épaule de l'utilisateur.


Personnaliser l'icône d'outil
Les outils que possède un utilisateur sont stockés dans leur . Les utilisateurs peuvent voir l'icône de chaque outil dans leurs sacs à dos sur une barre d'action :

Dans la fenêtre propriétés de l'outil, utilisez les propriétés suivantes pour personnaliser l'apparence de l'outil dans la barre d'action :
- ID de texture — L'icône d'outil. Définissez l'ID de l'image pour cette propriété de la même manière que les autocollants et les boutons d'image.
- ToolTip — Le nom de la balise d'information en surbrillance.
Activer et désactiver les utilisateurs pour lâcher des outils
Par défaut, un utilisateur peut déposer un outil en appuyant sur la touche Retour arrière sur Windows ou supprimer sur Mac.Vous pouvez désactiver cette option en définissant la propriété CanBeDropped de l'outil à false.Si CanBeDropped est false , en appuyant sur Retour arrière ou supprimer retourne l'outil dans le sac à dos de l'utilisateur.
Créer des outils en tant qu'objets d'inventaire
Vous pouvez également créer un outil en expérience sans parties ou mailles en tant qu'élément d'inventaire qui attend l'entrée de l'utilisateur, comme un sort magique que les personnages utilisateurs peuvent cliquer sur d'autres ou toucher l'écran pour le lancer.Les outils d'éléments d'inventaire n'ont pas besoin de poignées, vous devez donc désactiver la propriété Requiert une poignée dans la fenêtre Propriétés de l'outil.

Ajoutez des outils à votre expérience
Une fois que vous avez terminé la configuration de votre outil dans l'expérience, vous devez le placer dans la bonne zone de la hiérarchie des objets de votre expérience.L'endroit où vous placez l'outil dans la hiérarchie des objets de l'expérience dépend de son utilisation prévue.
Outil de départ par outil
Si vous voulez que tous les utilisateurs démarrent avec un outil dans leur inventaire, mettez-le dans le dossier StarterPack .Lorsque tout utilisateur apparaît, le système copie l'outil dans son sac à dos.

outilcollectible
Si vous voulez permettre aux utilisateurs de collecter des outils en se mouvement, vous pouvez placer les outils dans le espace de travail dans la hiérarchie du explorateur .Par exemple, vous voudrez peut-être placer un lanceur de super-roquettes dans une zone difficile d'accès de votre monde d'expérience.

outilgagné et acheté
Si vous souhaitez définir un outil comme récompenses lorsqu'un utilisateur fait quelque chose de spécial ou le propose à la vente dans un boutiqued'expérience, placez l'outil à l'intérieur de Stockage du serveur dans la hiérarchie Explorateur , qui peut le cloner au sac à dos de l'utilisateur au bon moment.

Ajouter des effets d'outils
Après avoir ajouté vos outils à votre expérience, vous pouvez ajouter des scripts pour permettre aux utilisateurs d'utiliser des outils pour faire des effets spéciaux.
Événements spécifiques à l'outil
Vous pouvez utiliser les quatre conditions spécifiques aux outils suivantes indiquant l'état de l'outil et l'entrée de l'utilisateur avec lui dans votre script d'outil :
Tool:Equipped() : Se produit lorsque l'utilisateur sélectionne l'outil dans son sac à dos.
Tool:Unequipped() : Se produit lorsque l'utilisateur lâche l'outil ou change d'outil.
Tool:Activated() : Se produit lorsque l'utilisateur commence à activer l'outil (clics, taps ou presses A sur une manette de jeu).
Tool:Deactivated() : Se produit lorsque l'utilisateur arrête l'entrée d'activation (relâche le bouton ou le toucher).
Bien que vous n'ayez peut-être pas besoin des quatre conditions lors de la conception d'un outil, vous pouvez utiliser le script de code suivant comme modèle de script d'outil de 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)
Cet exemple de code suppose que le script est un enfant de premier niveau à l'intérieur de l'objet d'outil.Si le script est ailleurs, ajustez le chemin à la ligne 1 (la valeur de tool) pour pointer vers l'objet d'outil principal.
Ajouter un script de base
L'exemple suivant montre les étapes pour ajouter un Script sur le serveur qui permet aux utilisateurs d'équiper une baguette magique qui peut changer le jour et la nuit en cliquant sur l'écran :
Dans la fenêtre Explorateur, passez la souris sur l'objet d'outil et cliquez sur le bouton ⊕ pour insérer un Script.
Copiez le code suivant et collez-le dans votre 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)Testez votre expérience en prenant l'outil et en cliquant ensuite n'importe où sur l'écran de votre expérience pour passer d'un jour à l'autre :
Différents types de scripts pour la mise en œuvre des outils
Certains outils n'ont besoin que d'un Script sur le serveur pour être mis en œuvre, comme l'exemple précédent, mais la plupart des outils nécessitent à la fois un Script sur le serveur et un LocalScript sur le client, où chacun prend en charge certains aspects du comportement de l'outil.
Avant d'ajouter vos scripts, assurez-vous de comprendre la différence principale entre chaque taperde script :
- Le script gère les modifications dans le monde d'expérience global visible pour tous les utilisateurs, telles que le déverrouillage d'une porte et le tir d'une flèche.
- LocalScript gère les choses qui se produisent uniquement sur l'appareil de l'utilisateur, telles que la détection de l'emplacement où ils touchent ou cliquent sur l'écran.
Voici quelques outils d'exemple et leurs comportements gérés par un script local ou un script serveur :
Outils | scriptlocale | scriptdu serveur |
---|---|---|
Baguette du créateur | Détecte où le joueur touche ou clique sur l'écran. | Crée une nouvelle partie à l'emplacement dans le monde du jeu où le joueur a touché ou cliqué. |
Cape d'invisibilité | Rend temporairement le joueur invisible pour tous les autres utilisateurs, tant que le capuchon est équipé. | |
Méga-arc | Détecte combien de temps le joueur active l'outil (temps entre l'activation et la désactivation). | Tire une flèche magique avec une puissance plus ou moins grande, en fonction du temps d'activation détecté. |
Pour plus d'informations sur les différents types de scripts, voir Scripts.
Conseils de dépannage
Un outil peut fonctionner correctement dans Studio mais pas dans une expérience Roblox en direct. Si cela se produit, utilisez les conseils suivants pour résoudre les problèmes :
- LocalScripts et Scripts ne peuvent pas écouter directement l'un l'autre, vous devez donc ajouter un RemoteEvent pour envoyer des messages entre les deux scripts.
- Assurez-vous que chacun de Script et LocalScript ne s'occupe que de ce qu'il est censé faire.
Pour plus d'informations sur RemoteEvents , voir Événements et rappels à distance .