DragDetector

Afficher les obsolètes

*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

Propriétés hérités de ClickDetector

Méthodes

Évènements

Évènements hérités de ClickDetector

Propriétés

ActivatedCursorIcon

ContentId
Lecture parallèle

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

Lecture parallèle

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é.

Non répliqué
Lecture parallèle

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

Lecture parallèle

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.

Lecture parallèle

Le paradigme utilisé pour générer une motion proposée, donné un flux de rayons curseurs. Voir Enum.DragDetectorDragStyle pour les options.

Enabled

Lecture parallèle

Si c'est vrai, le DragDetector répond à l'entrée de l'utilisateur ; s'il est faux, il ne le fait pas.

GamepadModeSwitchKeyCode

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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.

Lecture parallèle

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

Lecture parallèle

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 .

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Non répliqué
Lecture parallèle

L'axe secondaire de la motion. Relative à l'orientation en utilisant le même paradigme que Attachments .

TrackballRadialPullFactor

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Non répliqué
Lecture parallèle

Le Axis exprimé dans l'espace du monde. Relève de l'orientation en utilisant le même paradigme que Attachments .

WorldSecondaryAxis

Non répliqué
Lecture parallèle

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

priority: number

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.

Valeur par défaut : ""
function: function

Fonction pour modifier ou restreindre la motion proposée.Cette fonction prend une entrée CFrame de la motion proposée et renvoie une entrée CFrame de la motion modifiée ou non modifiée, tous deux par rapport au cadre de référence.

Valeur par défaut : ""

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

La référence CFrame dans laquelle le mouvement est exprimé.

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

function: function

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é.

Valeur par défaut : ""

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

function: function

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.

Valeur par défaut : ""

Retours

()

Évènements

DragContinue

S'enflamme lorsqu'un utilisateur poursuit le glissement de l'objet après que DragStart ait été initié.

Paramètres

playerWhoDragged: Player

Le Player qui a initié le glisser à travers DragStart et continue maintenant le glisser.

cursorRay: Ray

Ray émanant du curseur, visant dans la scène.

viewFrame: CFrame

CFrame de la partie Camera de l'utilisateur.

vrInputFrame: OptionalCoordinateFrame

Si vous utilisez un appareil d'entrée VR, le CFrame de la main tenant le curseur/pointeur/contrôleur.

isModeSwitchKeyDown: boolean

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

playerWhoDragged: Player

Le Player qui a initié le glissement à travers DragStart et a maintenant terminé (relâché) le glissement.


DragStart

S'enflamme lorsqu'un utilisateur commence à faire glisser l'objet.

Paramètres

playerWhoDragged: Player

Player qui a initié le glissement.

cursorRay: Ray

Ray émanant du curseur, visant dans la scène.

viewFrame: CFrame

CFrame de la partie Camera de l'utilisateur.

hitFrame: CFrame

Le cadre d'impact du rayon de curseur qui a initié le glissement.

clickedPart: BasePart

La partie qui a été touchée par le raycast du curseur qui a initié le glissement.

vrInputFrame: OptionalCoordinateFrame

Si vous utilisez un appareil d'entrée VR, le CFrame de la main tenant le curseur/pointeur/contrôleur.

isModeSwitchKeyDown: boolean

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 .