Outils en expérience

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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 :

  1. Dans la fenêtre Explorateur , passez la souris sur Espace de travail et cliquez sur le bouton pour afficher la liste des objets.

  2. 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 :

Glissement d'outil sur le sol
Outil face à l'arrière
Outil orienté correctement

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.

Décalage par défaut (0,0,0)
Décalage de l'outil sur l'épaule

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 :

  1. Dans la fenêtre Explorateur, passez la souris sur l'objet d'outil et cliquez sur le bouton pour insérer un Script.

  2. Copiez le code suivant et collez-le dans votre Script.


    local Lighting = game:GetService("Lighting")
    local tool = script.Parent
    local function onActivate()
    if Lighting.ClockTime >= 8 and Lighting.ClockTime < 16 then
    Lighting.ClockTime = 20
    else
    Lighting.ClockTime = 8
    end
    end
    tool.Activated:Connect(onActivate)
  3. 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 :

Outilsscriptlocalescriptdu serveur
Baguette du créateurDé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-arcDé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 .