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

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

Lecture parallèle

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

Non répliqué
Lecture parallèle

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

Lecture parallèle

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.

Lecture parallèle

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.

Enabled

Lecture parallèle

Si oui, le DragDetector répond à l'entrée de l'utilisateur ; si non, 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 drag a le mode de mouvement primaire et secondaire.

KeyboardModeSwitchKeyCode

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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</

Lecture parallèle

Contrôle le niveau d'autorisation pour lequel les joueurs peuvent interagir avec le DragDetector . Le par défaut est Enum.DragDetectorPermissionPolicy.Everybody .

ReferenceInstance

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Lecture parallèle

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

Non répliqué
Lecture parallèle

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

TrackballRadialPullFactor

Lecture parallèle

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

Lecture parallèle

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

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拖 a le mode de déplacement primaire et secondaire.

WorldAxis

Non répliqué
Lecture parallèle

Le Axis exprimé dans l'espace mondial. Il se rapporte à l'orientation en utilisant le même paradigme que Attachments.

WorldSecondaryAxis

Non répliqué
Lecture parallèle

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

priority: number

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.

function: function

Fonction pour modifier ou restreindre la motion proposée. Cette fonction prend un entrée CFrame de la motion proposée et renvoie un CFrame de 1> laotion modifiée1> ou non modifiée, tous deux par rapport à la référence.


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

La référence CFrame dans laquelle la position est exprimée.

RestartDrag

void

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

void

SetDragStyleFunction

void

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

function: function

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

void

SetPermissionPolicyFunction

void

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 configurer l'interactivité du détecteur. Cette fonction accepte un Player paramètre pour activer/désactiver le déte


Retours

void

Évènements

DragContinue

Feuilles quand un utilisateur continue de faire glisser l'objet après que DragStart a été initialisé.

Paramètres

playerWhoDragged: Player

Le Player qui a initialisé le glissement à travers DragStart et continue maintenant le glissement.

cursorRay: Ray

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

viewFrame: CFrame

CFrame du Camera de l'utilisateur.

vrInputFrame: OptionalCoordinateFrame

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

isModeSwitchKeyDown: bool

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

playerWhoDragged: Player

Le Player qui a initialisé le glissement à travers DragStart et qui a maintenant terminé (publié) le glissement.


DragStart

Lancement lorsqu'un utilisateur commence à faire glisser l'objet.

Paramètres

playerWhoDragged: Player

Player qui a initié le glissement.

cursorRay: Ray

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

viewFrame: CFrame

CFrame du Camera de l'utilisateur.

hitFrame: CFrame

La fenêtre de hit du curseur raycast qui a initialisé le déplacement.

clickedPart: BasePart

La partie qui a été touchée par le raycast du curseur qui a initialisé le déplacement.

vrInputFrame: OptionalCoordinateFrame

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

isModeSwitchKeyDown: bool

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.