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 les objets 3D dans une expérience, tels que l'ouverture de portes et de tiroirs, le déplacement d'une partie autour et bien plus encore. Les fonctionnalités clés incluent :
Placez un DragDetector sous n'importe lequel BasePart ou Model pour le rendre拖动able via tous les entrants (souris, touche, gamepad et VR), tout en n'écrivant pas une seule ligne de code.
Choisissez parmi plusieurs options DragStyle, définissez comment l'objet répond à la dérive via ResponseStyle et appliquez éventuellement des limites de dérive ou de mouvement.
Les scripts peuvent répondre à la manipulation des objets glissés pour conduire l'interface utilisateur ou prendre des décisions logiques, telles que l'ajustement du niveau de lumière dans une chambre basé sur un dimmer de mur à déplacer.
Les joueurs peuvent manipuler des parties ou des modèles ancrés et ils resteront exactement là où vous les avez mis lors de la sortie.
Class.DragDetector|DragDetectors fonctionne dans Studio tant que vous n'êtes pas non en utilisant les outils sélectionner , 0> déplacer0>, 3> échelle3>, ou DragDetectors6>, ce qui facilite le test et l'ajustement des objets déplaçables tout en éditer.
Voir le détecteurs de拖 3D guide pour plus de détails et d'exemples d'utilisation.
Résumé
Propriétés
Définit l'icône de curseur pour s'afficher lorsque la souris est activée sur le parent de cette DragDetector .
Whether약束 force est appliqué au centre de masse de l'objet.
L'axe principal de la dérive, exprimé par rapport à la fenêtre de référence.
Le CFrame de la pivot, en fonction du détecteur de faisceau de glissement ReferenceInstance.
Le paradigme utilisé pour générer la motion proposée.
Whether the DragDetector répond à l'entrée de l'utilisateur.
Pendant l'entrée du gamepad, le modificateur Enum.KeyCode pour le mode de mouvement secondaire.
Pendant l'entrée du clavier, le modificateur Enum.KeyCode pour le mode de mouvement secondaire.
Avec MinDragAngle, empêche les tentatives du détecteur de générer des mouvements.
Avec MinDragTranslation, empêche les tentatives du détecteur de générer des mouvements.
Force maximale appliquée pour que l'objet atteigne son objectif.
Maximum de couple appliqué pour que l'objet atteigne son objectif.
Avec MaxDragAngle, empêche les tentatives du détecteur de générer des mouvements.
Avec MaxDragTranslation, empêche les tentatives du détecteur de générer des mouvements.
Spécifie la rotation YXZ des axes de mouvement par rapport à la 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 la référence pour le détecteur de拖动.
Le paradigme utilisé pour mouvement, ou non mouvement, les objets affectés par le détecteur de拖.
Les valeurs plus élevées permettent à l'objet d'atteindre son objectif plus rapidement.
Whether user input on a DragDetector replicates to the server or remains local to the specific client.
L'axe secondaire de la motion.
Si DragStyle est Enum.DragDetectorDragStyle.RotateTrackball , multiplicateur pour ajouter une rotation de rotation radiale comme contribution au total.
Si DragStyle est Enum.DragDetectorDragStyle.RotateTrackball , multiplicateur pour ajouter la rotation de rouleau au total.
Pendant l'entrée VR, le modificateur 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 de curseur pour s'afficher lorsque la souris est positionnée sur le parent de ce ClickDetector ou DragDetector .
Distance maximale entre un personnage et le ClickDetector ou DragDetector pour que le joueur puisse interagir avec lui.
Méthodes
Ajoute une fonction pour modifier ou restreindre la motion proposée.
Retourne la référence CFrame dans laquelle la motion est exprimée.
Peut être invoqué à partir d'un script pour redémarrer le déplacement en utilisant de nouveaux paramètres.
Transmet une fonction à utiliser si et seulement si DragStyle est défini sur Enum.DragDetectorDragStyle.Scriptable.
Transmet 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 : bool):RBXScriptSignal
Feuilles quand un utilisateur continue de faire glisser l'objet après que DragStart a été initialisé.
Feu quand un utilisateur arrête de faire glisser l'objet.
Lancement lorsqu'un utilisateur commence à faire glisser l'objet.
Se déclenche lorsqu'un joueur interagit avec le parent d'un ClickDetector ou DragDetector.
Se déclenche lorsque le parent d'un ClickDetector ou DragDetector est survolé par un joueur.
Activer le jeu quand le curseur d'un joueur passe du parent d'un ClickDetector ou d'un DragDetector.
Se déclenche lorsqu'un joueur fait un clic droit sur leur curseur de souris sur un ClickDetector ou DragDetector.
Propriétés
ActivatedCursorIcon
Définit l'icône de curseur pour s'afficher lorsque la souris est activée sur le parent de cette DragDetector . Si cette propriété est vide, le détecteur utilisera l'icône par défaut.
Pour modifier 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 faux (par défaut), la force de contrôle est appliquée au moment où l'utilisateur clique sur. Lorsque vrai, la force est appliquée au centre de masse de l'objet. Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et l'objet parent est non ancré.
Axis
L'axe principal de la dérive, exprimé par rapport à la fenêtre de référence. Pour un DragStyle de Enum.DragDetectorDragStyle.TranslateLine , la direction de la traduction
DragFrame
Si ReferenceInstance est configurer, le CFrame du pivot par rapport à la fenêtre de référence ; sinon, le CFrame du pivot par rapport à son cadre au début du déplacement.
DragStyle
Le paradigme utilisé pour générer la motion proposée, en donnant un flux de rayons de curseur. Voir Enum.DragDetectorDragStyle pour les options.
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 drag a le mode de mouvement primaire et secondaire.
KeyboardModeSwitchKeyCode
Pendant l'entrée du clavier, le Enum.KeyCode pour activer le mode de mouvement secondaire. S'applique uniquement si le détecteur de drag a le mode de mouvement principal et secondaire.
MaxDragAngle
Si ceci est supérieur à MinDragAngle, la traduction sera ajustée dans cette gamme.
Ce n'est pas une contrainte ; il empêche simplement les tentatives du détecteur de draguer de générer des mouvements pour rester dans les limites. Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un drag.
N'est pertinent que si DragStyle est Enum.DragDetectorDragStyle.RotateAxis .
MaxDragTranslation
Dans n'importe quelle dimension, si ceci est supérieur à MinDragTranslation, la traduction sera ajustée dans cette gamme.
Ce n'est pas une contrainte ; il empêche simplement les tentatives du détecteur de draguer de générer des mouvements pour rester dans les limites. Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un drag.
MaxForce
Force maximale appliquée pour que l'objet atteigne son objectif. Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et l'objet parent n'est pas ancré.
MaxTorque
Maximum de couple appliqué pour que l'objet atteigne son objectif. Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et l'objet parent n'est pas ancré.
MinDragAngle
Si ceci est inférieur à MaxDragAngle, la traduction sera ajustée dans cette gamme.
Ce n'est pas une contrainte ; il empêche simplement les tentatives du détecteur de draguer de générer des mouvements pour rester dans les limites. Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un drag.
N'est pertinent que si DragStyle est Enum.DragDetectorDragStyle.RotateAxis .
MinDragTranslation
Dans n'importe quelle dimension, si ceci est inférieur à MaxDragTranslation, la traduction sera ajustée dans cette gamme.
Ce n'est pas une contrainte ; il empêche simplement les tentatives du détecteur de draguer de générer des mouvements pour rester dans les limites. Voir AddConstraintFunction() pour ajouter une contrainte personnalisée à un drag.
Orientation
Spécifie la rotation YXZ des axes de déplacement par rapport à la référence (ne modifie pas l'orientation de la référence). La traduction linéaire et la rotation axiale seront sur cet axe Y de référence, et la traduction planaire dans l'axe X . Changer cette valeur met automatiquement à jour 1> Class.DragDetector.Axis|Axis</
PermissionPolicy
Contrôle le niveau d'autorisation pour lequel les joueurs peuvent interagir avec le DragDetector . Le par défaut est Enum.DragDetectorPermissionPolicy.Everybody .
ReferenceInstance
Une instance dont le CFrame est la frame de référence pour le détecteur de drag. Le DragFrame est expressé par rapport à ce CFrame qui peut être récupéré via la méthode 2>Class.DragDetector:GetReferenceFrame()2>.
Si cette instance est un PVInstance, le cadre de référence sera son pivot ; si un Attachment, alors son monde sera CFrame . Si c'est 1> nil1> ou l'un des premiers, le cadre de référence sera basé sur le p
ResponseStyle
Une fois que la motion proposée a été calculée et potentiellement restreinte, c'est le paradigme utilisé pour mouvementou non mouvementles objets touchés par le DragDetector . Voir Enum.DragDetectorResponseStyle pour les options.
Responsiveness
Les valeurs plus élevées provoquent que l'objet atteigne son objectif plus rapidement. Seulement pertinent si ResponseStyle est Enum.DragDetectorResponseStyle.Physical et l'objet parent est non ancré.
RunLocally
Si faux (par défaut), le client envoie des signaux répliqués ( DragStart , DragContinue , DragEnd ) au serveur qui traite les rayons de curseur, apporte des modifications au modèlisationde données et les réplique vers les clients.
Si oui, le client traite ces signaux lui-même et ne les réplique pas sur le serveur. Le client LocalScripts peut être utilisé pour répondre à ces événements et RemoteEvents peut être utilisé pour envoyer les modifications résultantes qui doivent être répliquées sur le serveur.
SecondaryAxis
L'axe secondaire de la motion. Relate à l'orientation en utilisant le même paradigme que Attachments .
TrackballRadialPullFactor
Lorsque le curseur est en dehors de la boule de piste, le DragDetector peut appliquer une rotation de rotation radial qui tourne 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
TrackballRollFactor
Lorsque le curseur est en dehors de la boule de piste, le DragDetector peut appliquer une rotation de roulement qui transforme 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 roulement au total. Seulement pertinent si DragStyle
VRSwitchKeyCode
Pendant l'entrée VR, le Enum.KeyCode pour activer le mode de mouvement secondaire. S'applique uniquement si le détecteur de拖 a le mode de déplacement primaire et secondaire.
WorldAxis
Le Axis exprimé dans l'espace mondial. Il se rapporte à l'orientation en utilisant le même paradigme que Attachments.
WorldSecondaryAxis
Le SecondaryAxis exprimé dans l'espace mondial. Il se rapporte à l'orientation en utilisant le même paradigme que Attachments.
Méthodes
AddConstraintFunction
Ajoute une fonction à modifier ou à restreindre la motion proposée. La fonction prend un entrée CFrame de la motion proposée et renvoie un CFrame de 1> laotion modifiée1> ou non modifiée. Les entrée et sortie sont tous deux expressed relativement à la réfé
Pour supprimer une fonction de contrôle ajoutée, appelez Disconnect() sur l'objet de connexion renvoyé.
Paramètres
L'ordre de priorité pour les fonctions ajoutées via cette méthode. Les valeurs plus élevées prennent la priorité sur les valeurs plus basses.
Retours
Utilisez cet objet de connexion pour supprimer la fonction de contrôle.
GetReferenceFrame
Retourne la référence CFrame dans laquelle la motion est expressée ; voir la propriété ReferenceInstance pour plus de détails.
Retours
RestartDrag
Peut être invoqué à partir d'un script pour redémarrer le déplacement 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 Class.DragDetectorDragContin
Si la fonction renvoie nil, l'objet ne sera pas déplacé. Ceci 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 souhaitez que l'objet reste où il est.
Paramètres
Fonction pour surveiller les signaux DragContinue. Cette fonction reçoit le curseur du monde de signal et renvoie un CFrame contenant le lieu et l'orientation souhaités dans l'espace mondial. Si cette fonction renvoie nil, l'objet ne sera pas déplacé.
Retours
SetPermissionPolicyFunction
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
Retours
Évènements
DragContinue
Feuilles quand un utilisateur continue de faire glisser l'objet après que DragStart a été initialisé.
Paramètres
Si vous utilisez un appareil d'entrée VR, le CFrame de la main qui détient le curseur/pointeur/contrôleur.
Si le détecteur de draguer a l'DragStyle de deux modes de mouvement primaires et secondaires, ce paramètre indique si l'utilisateur appuie sur l'entrée de modificateur définie via KeyboardModeSwitchKeyCode, Class.
DragEnd
Feu quand un utilisateur arrête de faire glisser l'objet.
Paramètres
DragStart
Lancement lorsqu'un utilisateur commence à faire glisser l'objet.
Paramètres
La fenêtre de hit du curseur raycast qui a initialisé le déplacement.
La partie qui a été touchée par le raycast du curseur qui a initialisé le déplacement.
Si vous utilisez un appareil d'entrée VR, le CFrame de la main qui détient le curseur/pointeur/contrôleur.
Si le détecteur de draguer a l'DragStyle de deux modes de mouvement primaires et secondaires, ce paramètre indique si l'utilisateur appuie sur l'entrée de modificateur définie via KeyboardModeSwitchKeyCode, Class.