DragDetector
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
L'instance DragDetector facilite et encourage l'interaction avec des objets 3D dans une expérience, tels que l'ouverture de portes et de tiroirs, le glissement d'une partie autour, et bien plus encore.Les caractéristiques clés incluent :
Placez un DragDetector sous n'importe quelle entrée BasePart ou Model pour le rendre glissable via toutes les entrées (souris, toucher, manette de jeu et VR), tous sans une seule ligne de code.
Choisissez parmi plusieurs options DragStyle , définissez la façon dont l'objet répond à la mobilité via ResponseStyle , et appliquez facultativement des limites d'axe ou de mouvement.
Les scripts peuvent répondre à la manipulation des objets glissés pour piloter l'interface utilisateur ou prendre des décisions logiques, telles que l'ajustement du niveau de lumière dans une salle en fonction d'un interrupteur de mur glissant.
Les joueurs peuvent manipuler des parties ou des modèles ancrés et ils resteront exactement où vous les avez placés lors de la sortie.
DragDetectors travaillez dans Studio aussi longtemps que vous êtes pas en utilisant les outils sélectionner , déplacer , échelle ou tourner les outils, ce qui facilite le test et l'ajustement des objets glissables pendant l'édition.
Voir le guide 3D Drag Detectors pour les détails et les exemples d'utilisation.
Résumé
Propriétés
Définit l'icône du curseur à afficher lorsque la souris est activée sur le parent de cette DragDetector .
Si la force de contrainte est appliquée au centre de masse de l'objet.
L'axe principal de mouvement, exprimé par rapport au cadre de référence.
Le CFrame du pivot, dépendant du détecteur de glissement de ReferenceInstance.
Le paradigme utilisé pour générer la motion proposée.
Si la DragDetector répond à l'entrée de l'utilisateur.
Pendant l'entrée du gamepad, le modifieur Enum.KeyCode pour le mode de mouvement secondaire.
Pendant l'entrée au clavier, le modifieur Enum.KeyCode pour le mode de mouvement secondaire.
Avec MinDragAngle, il empêche les tentatives du détecteur de mouvement de générer des mouvements.
Avec MinDragTranslation, il empêche les tentatives du détecteur de mouvement de générer des mouvements.
Force maximale appliquée à l'objet pour atteindre son objectif.
Couple maximum appliqué à l'objet pour atteindre son objectif.
Avec MaxDragAngle, il empêche les tentatives du détecteur de mouvement de générer des mouvements.
Avec MaxDragTranslation, il empêche les tentatives du détecteur de mouvement de générer des mouvements.
Spécifie la rotation YXZ des axes de mouvement par rapport au cadre de référence.
Contrôle le niveau d'autorisation pour lequel les joueurs peuvent interagir avec le DragDetector.
Une instance dont le CFrame est le cadre de référence pour le détecteur de glissement.
Le paradigme utilisé pour mouvement, ou ne pas mouvement, les objets affectés par le détecteur de dragon.
Les valeurs plus élevées font en sorte que l'objet atteigne son objectif plus rapidement.
Que l'entrée de l'utilisateur sur un DragDetector réplique au serveur ou reste locale pour le client spécifique.
L'axe secondaire de la motion.
Si DragStyle est Enum.DragDetectorDragStyle.RotateTrackball , multiplicateur pour ajouter une rotation de traction radiale comme contribution au total.
Si DragStyle est Enum.DragDetectorDragStyle.RotateTrackball , multiplicateur pour ajouter la rotation du rouleau au total.
Pendant l'entrée VR, le modifieur Enum.KeyCode pour le mode de mouvement secondaire.
Le Axis exprimé dans l'espace du monde.
Le SecondaryAxis exprimé dans l'espace du monde.
Définit l'icône du curseur à afficher lorsque la souris se trouve au-dessus du parent de ce ClickDetector ou DragDetector .
Distance maximale entre un personnage et le ClickDetector ou DragDetector pour que le joueur puisse interagir avec.
Méthodes
Ajoute une fonction pour modifier ou restreindre la motion proposée.
Renvoie la référence CFrame dans laquelle le mouvement est exprimé.
Peut être invoqué à partir d'un script pour redémarrer le glisser en utilisant de nouveaux paramètres.
Passe une fonction à utiliser si et seulement si DragStyle est défini sur Enum.DragDetectorDragStyle.Scriptable.
Passe une fonction à utiliser si et seulement si PermissionPolicy est défini sur Enum.DragDetectorPermissionPolicy.Scriptable.
Évènements
- DragContinue(playerWhoDragged : Player,cursorRay : Ray,viewFrame : CFrame,vrInputFrame : OptionalCoordinateFrame,isModeSwitchKeyDown : boolean):RBXScriptSignal
S'enflamme lorsqu'un utilisateur poursuit le glissement de l'objet après que DragStart ait été initié.
S'enflamme lorsqu'un utilisateur arrête de faire glisser l'objet.
S'enflamme lorsqu'un utilisateur commence à faire glisser l'objet.
Se déclenche lorsqu'un joueur interagit avec le parent d'un ClickDetector ou DragDetector .
S'enflamme lorsque le parent d'un ClickDetector ou DragDetector est survolé par un joueur.
Se déclenche lorsque le curseur d'un joueur se déplace hors du parent d'un ClickDetector ou DragDetector .
S'enflamme lorsqu'un joueur fait un clic droit avec sa souris sur un ClickDetector ou DragDetector .
Propriétés
ActivatedCursorIcon
Définit l'icône du curseur à afficher lorsque la souris est activée sur le parent de cette DragDetector .Si cette propriété est laissée vide, le détecteur utilisera l'icône par défaut.
Pour changer l'icône de curseur activée, définissez cette propriété sur l'ID de la ressource de l'image que vous souhaitez utiliser.
ApplyAtCenterOfMass
Lorsque false (par défaut), la force de contrainte est appliquée au point où l'utilisateur clique.Lorsque cela est vrai, la force est appliquée au centre de masse de l'objet.Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et que l'objet parent n'est pas ancré.
Axis
L'axe principal de mouvement, exprimé par rapport au cadre de référence.Pour un DragStyle de Enum.DragDetectorDragStyle.TranslateLine , la direction de traduction ; pour Enum.DragDetectorDragStyle.TranslatePlane , la normale vers le plan de mouvement ; pour Enum.DragDetectorDragStyle.RotateAxis , l'axe de la rotation 1D.Changer cette valeur met automatiquement à jour Orientation et vice versa.
DragFrame
Si ReferenceInstance est configurer, le CFrame du pivot par rapport au cadre de référence ; sinon, le CFrame du pivot par rapport à son cadre au début du glissement.
DragStyle
Le paradigme utilisé pour générer une motion proposée, donné un flux de rayons curseurs. Voir Enum.DragDetectorDragStyle pour les options.
Enabled
Si c'est vrai, le DragDetector répond à l'entrée de l'utilisateur ; s'il est faux, il ne le fait pas.
GamepadModeSwitchKeyCode
Pendant l'entrée du gamepad, le Enum.KeyCode pour activer le mode de mouvement secondaire.S'applique uniquement si le détecteur de glissement a DragStyle les deux modes de mouvement primaire et secondaire.
KeyboardModeSwitchKeyCode
Pendant l'entrée au clavier, le Enum.KeyCode pour activer le mode de mouvement secondaire.S'applique uniquement si le détecteur de glissement a DragStyle les deux modes de mouvement primaire et secondaire.
MaxDragAngle
Si cela est supérieur à MinDragAngle, la traduction sera clampée dans cette plage.
Ce n'est pas une contrainte ; il n'empêche simplement pas les tentatives du détecteur de mouvement de générer des mouvements afin de rester dans les limites.Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un glisser.
Seulement pertinent si DragStyle est Enum.DragDetectorDragStyle.RotateAxis.
MaxDragTranslation
Dans n'importe quelle dimension, si cela est supérieur à MinDragTranslation, la traduction sera clampée dans cette plage.
Ce n'est pas une contrainte ; il n'empêche simplement pas les tentatives du détecteur de mouvement de générer des mouvements afin de rester dans les limites.Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un glisser.
MaxForce
Force maximale appliquée à l'objet pour atteindre son objectif. Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et que l'objet parent n'est pas ancré.
MaxTorque
Couple maximum appliqué à l'objet pour atteindre son objectif. Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et que l'objet parent n'est pas ancré.
MinDragAngle
Si c'est moins de MaxDragAngle, la traduction sera clampée dans cette plage.
Ce n'est pas une contrainte ; il n'empêche simplement pas les tentatives du détecteur de mouvement de générer des mouvements afin de rester dans les limites.Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un glisser.
Seulement pertinent si DragStyle est Enum.DragDetectorDragStyle.RotateAxis.
MinDragTranslation
Dans n'importe quelle dimension, si c'est moins de MaxDragTranslation, la traduction sera clampée dans cette plage.
Ce n'est pas une contrainte ; il n'empêche simplement pas les tentatives du détecteur de mouvement de générer des mouvements afin de rester dans les limites.Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un glisser.
Orientation
Spécifie la rotation YXZ des axes de mouvement par rapport au cadre de référence (ne change pas l'orientation du cadre de référence lui-même).La traduction linéaire et la rotation axiale seront sur cet axe réorienté Y , et la traduction planaire dans le plan XZ .Changer cette valeur met automatiquement à jour Axis et vice versa.
PermissionPolicy
Contrôle le niveau d'autorisation pour lequel les joueurs peuvent interagir avec le DragDetector. La valeur par défaut est Enum.DragDetectorPermissionPolicy.Everybody.
ReferenceInstance
Une instance dont le CFrame est le cadre de référence pour le détecteur de glissement.Le DragFrame est exprimé par rapport à ce CFrame qui peut être récupéré via la méthode GetReferenceFrame().
Si cette instance est une PVInstance , le cadre de référence sera son pivot ; si une Attachment , alors son monde sera CFrame .Si c'est nil ou aucun des deux précédents, le cadre de référence sera basé sur le pivot du parent du détecteur de glissement BasePart ou Model .
ResponseStyle
Une fois que la motion proposée a été calculée et potentiellement restreinte, c'est le paradigme utilisé pour mouvement, ou ne pas mouvement, les objets affectés par le DragDetector.Voir Enum.DragDetectorResponseStyle pour les options.
Responsiveness
Les valeurs plus élevées font en sorte que l'objet atteigne son objectif plus rapidement. Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et que l'objet parent n'est pas ancré.
RunLocally
Si false (par défaut), le client envoie des signaux répliqués (DragStart , DragContinue , DragEnd ) au serveur qui traite les curseurs et modifie le modèlisationde données, puis les réplique vers les clients.
Si c'est vrai, le client traite ces signaux lui-même et ne les réplique pas au serveur.Le client LocalScripts peut être utilisé pour répondre à ces événements et RemoteEvents peut être utilisé pour envoyer toutes les modifications résultantes qui devraient être répliquées sur le serveur.
SecondaryAxis
L'axe secondaire de la motion. Relative à l'orientation en utilisant le même paradigme que Attachments .
TrackballRadialPullFactor
Lorsque le curseur est en dehors du trackball, le DragDetector peut appliquer une rotation de traction radiale qui fait tourner la balle comme si elle essayait de rouler vers le curseur.Cette propriété est un multiplicateur de 0 à 1 pour ajouter cette rotation comme contribution au total.Seulement pertinent si DragStyle est Enum.DragDetectorDragStyle.RotateTrackball.
TrackballRollFactor
Lorsque le curseur est en dehors du trackball, le DragDetector peut appliquer une rotation en rouleau qui fait tourner la balle comme si elle était montée sur un disque vinyle face au spectateur.Cette propriété est un multiplicateur de 0 à 1 pour ajouter cette rotation de rouleau au total.Seulement pertinent si DragStyle est Enum.DragDetectorDragStyle.RotateTrackball.
VRSwitchKeyCode
Pendant l'entrée VR, le Enum.KeyCode pour activer le mode de mouvement secondaire.S'applique uniquement si le détecteur de glissement a DragStyle les deux modes de mouvement primaire et secondaire.
WorldAxis
Le Axis exprimé dans l'espace du monde. Relève de l'orientation en utilisant le même paradigme que Attachments .
WorldSecondaryAxis
Le SecondaryAxis exprimé dans l'espace du monde. Relève de l'orientation en utilisant le même paradigme que Attachments .
Méthodes
AddConstraintFunction
Ajoute une fonction pour modifier ou restreindre la motion proposée.La fonction prend une entrée CFrame de la motion proposée et renvoie une CFrame de la motion modifiée ou non modifiée.Les entrées et les sorties sont exprimées par rapport au cadre de référence.Vous pouvez ajouter plusieurs fonctions qui seront appelées dans l'ordre par priority , en passant les résultats dans une chaîne.
Pour supprimer une fonction de contrainte ajoutée, appelez Disconnect() sur l'objet de connexion retourné.
Paramètres
L'ordre de priorité des fonctions ajoutées via cette méthode. Les valeurs plus élevées ont la priorité sur les valeurs plus basses.
Retours
Utilisez cet objet de connexion pour supprimer la fonction de contrainte.
GetReferenceFrame
Renvoie la référence CFrame dans laquelle le mouvement est exprimé ; voir la propriété ReferenceInstance pour plus de détails.
Retours
RestartDrag
Peut être invoqué à partir d'un script pour redémarrer le glisser en utilisant de nouveaux paramètres, si les paramètres tels que DragStyle, Axis ou SecondaryAxis changent.
Retours
SetDragStyleFunction
Passe une fonction à utiliser si et seulement si DragStyle est défini sur Enum.DragDetectorDragStyle.Scriptable.La fonction donnée est appelée lors de la réponse à un signal DragContinue , elle reçoit le rayon de curseur du monde du signal avec le type Ray , et elle renvoie un CFrame contenant la position et l'orientation souhaitées du pivot dans l'espace du monde.
Si la fonction renvoie nil, l'objet ne sera pas déplacé.Cela est utile si le script n'a pas encore collecté toutes les informations dont il a besoin pour donner la bonne réponse, ou dans des cas temporaires où vous voulez que l'objet reste où il est.
Paramètres
Fonction de surveillance des signaux DragContinue .Cette fonction reçoit le rayon de curseur du monde du signal et renvoie un CFrame contenant l'emplacement et l'orientation souhaités du pivot dans l'espace du monde.Si cette fonction renvoie nil , l'objet ne sera pas déplacé.
Retours
SetPermissionPolicyFunction
Passe une fonction à utiliser si et seulement si PermissionPolicy est défini sur Enum.DragDetectorPermissionPolicy.Scriptable.La fonction donnée accepte un paramètre Player pour activer/désactiver le détecteur pour un joueur spécifique.Il reçoit également un paramètre part indiquant lequel des spécifiques BasePart a été cliqué, comme une partie dans une partie glissable Model ; cela est utile pour activer/désactiver le détecteur en fonction de la valeur Name , Color , HasTag() du partie, ou d'autres détails.
local dragDetector = script.Parent.DragDetector
dragDetector.PermissionPolicy = Enum.DragDetectorPermissionPolicy.Scriptable
dragDetector:SetPermissionPolicyFunction(function(player, part)
if player and player:GetAttribute("IsInTurn") then
return true
elseif part and not part:GetAttribute("IsDraggable") then
return false
else
return true
end
end)
Paramètres
Fonction pour définir l'interactivité du détecteur.Cette fonction accepte un paramètre Player pour activer/désactiver le détecteur pour un joueur spécifique.Il reçoit également un paramètre part indiquant lequel des spécifiques BasePart a été cliqué, comme une partie dans une partie glissable Model ; cela est utile pour activer/désactiver le détecteur en fonction de la valeur Name , Color , HasTag() de cette partie, ou d'autres détails.
Retours
Évènements
DragContinue
S'enflamme lorsqu'un utilisateur poursuit le glissement de l'objet après que DragStart ait été initié.
Paramètres
Si vous utilisez un appareil d'entrée VR, le CFrame de la main tenant le curseur/pointeur/contrôleur.
Si le détecteur de glissement a des modes de mouvement primaire et secondaire, ce paramètre indique si l'utilisateur appuie sur l'entrée modifiante définie via , ou .
DragEnd
S'enflamme lorsqu'un utilisateur arrête de faire glisser l'objet.
Paramètres
DragStart
S'enflamme lorsqu'un utilisateur commence à faire glisser l'objet.
Paramètres
Le cadre d'impact du rayon de curseur qui a initié le glissement.
La partie qui a été touchée par le raycast du curseur qui a initié le glissement.
Si vous utilisez un appareil d'entrée VR, le CFrame de la main tenant le curseur/pointeur/contrôleur.
Si le détecteur de glissement a des modes de mouvement primaire et secondaire, ce paramètre indique si l'utilisateur appuie sur l'entrée modifiante définie via , ou .