VRC Pickup
Permet aux objets d'être ramassés, tenus et utilisés par les joueurs.
Règles de Proximité
remarque
Toutes les règles décrites dans cette section s'appliquent également aux "Interactables", c'est-à-dire aux UdonBehaviours qui ont un événement Interact
(ils afficheront également un curseur "Proximity" dans l'Inspecteur).
La valeur "Proximity" définit à quelle distance votre objet peut être ramassé. Elle est exprimée en mètres, également appelés "unités Unity", où la longueur du côté d'un Cube par défaut équivaut à 1 unité.
Il y a 2 méchanismes de ramassage où la valeur de proximité va entrer en jeu :
- Raycast : Si vous êtes loin d'un objet à ramsser, ou si vous êtes en mode desktop, les objets ramassables seront mis en surbrillance si le "laser" qui part de votre main (en VR) ou si votre réticule (desktop) croise le Collider sur un objet à ramasser. Le calcul de distance pour comparer la proximité est différente en VR et en mode Desktop :
- VR : La distance entre l'origine du laser (c'est-à-dire vos contrôleurs de mains) et le point d'impact sur le collider, en mètres.
- Desktop : La distance entre l'origine du laser (c'est-à-dire votre tête ou la position de la caméra principale) moins une valeur de "reach" supplémentaire pour compenser l'incapacité de déplacer vos mains vers l'avant. Il s'agit d'une valeur approximative qui prend également en compte l'échelle de votre avatar ("bras plus longs"). Étant soustrait de la distance, cela vous permettra de saisir des objets qui sont techniquement en dehors de la plage de "Proximity", mais pourraient être saisis en déplaçant vos bras tout en restant dans cette position en VR.
- Hover (VR uniquement) : Si vos mains sont suffisamment proches d'un objet, les objets à ramasser seront mis en surbrillance même si un rayon dans la direction du rayon laser UI n'intersecte pas l'objet. Cela permet une "saisie" plus naturelle des objets. La distance de portée est une sphère centrée sur vos mains avec un rayon de 0,4 mètre multiplié par l'échelle de votre avatar (notez que cette valeur n'est pas directement comparable au système "avatar scaling" disponible pour les utilisateurs, bien que le changement de l'échelle de l'avatar de cette manière puisse affecter la portée).
- La valeur de "Proximity" est toujours comparée à la distance brute entre votre main et le collider sur l'objet à ramasser, ce qui signifie que la "distance de portée" décrite est seulement une borne supérieure pour la proximité à laquelle le mode "Hover" s'activera.
- Par exemple, définir Proximity à 0 nécessitera que la main soit à l'intérieur du collider pour que l'objet à ramasser soit mis en surbrillance (il sera toujours saisissable en mode bureau cependant, en raison de la "reach" supplémentaire accordée aux utilisateurs de bureau pour compenser).
- Comme technique avancée, vous pouvez ajuster la valeur de Proximity en fonction des données fournies par le biais du système de mise à l'échelle de l'avatar.
Requiert :
- Rigidbody
- Collider
Paramètre | Description |
---|---|
Momentum Transfer Method (Méthode de transfert de momentum) | Cela définit comment la force de collision sera ajoutée à l'autre objet qui a été touché, en utilisant Rigidbody.AddForceAtPosition. Remarque : la force ne sera ajoutée que si 'AllowCollisionTransfer' est activé. |
Disallow Theft (Interdiction de vol) | Si les autres utilisateurs sont autorisés à prendre l'objet d'entre les mains de quelqu'un d'autre. |
Physical Root (Racine physique) | Peut être utilisé si la racine de l'objet n'est pas sur le même GameObject que ce script, permet plusieurs points de ramassage sur un seul objet. |
Exact Gun (Arme exacte) | La position de l'objet sera maintenue si elle est définie sur "Exact Gun" (Arme exacte). |
Exact Grip (Prise exacte) | La position de l'objet sera maintenue si elle est définie sur "Exact Grip" (Prise exacte). |
Allow Manipulation When Equipped (Autoriser la manipulation lorsqu'il est équipé) | L'utilisateur doit-il pouvoir manipuler l'objet pendant qu'il est tenu si un contrôleur est utilisé. |
Orientation | La manière dont l'objet sera tenu. |
Auto Hold (Maintien automatique) | L'objet doit-il rester dans la main de l'utilisateur après avoir relâché le bouton de saisie. - Auto Detect : Détecte automatiquement quoi faire - Oui : Après que le bouton de saisie soit relâché, l'objet reste dans la main jusqu'à ce que le bouton de largage soit pressé et relâché - Non : Après que le bouton de saisie soit relâché, l'objet est relâché Remarque : cela s'applique uniquement aux schémas de contrôle qui ne disposent pas d'une entrée "Utiliser" indépendante de "Saisir", tels que Desktop, Vive et les systèmes d'entrée similaires à Vive. Cela ne s'applique pas à Quest, Quest-like et autres systèmes d'entrée avec une gâchette définie. |
Use Text (Texte d'utilisation) | Texte qui apparaît lorsque l'utilisateur a un objet équipé, lui demandant de "tirer" avec l'objet. Nécessite que "Auto Hold" soit réglé sur "Oui". |
Throw Velocity Boost Min Speed (Vitesse minimale pour le lancer) | Vitesse minimale à laquelle l'objet doit se déplacer pour être lancé. |
Throw Velocity Boost Scale (Échelle de l'impulsion de vitesse du lancer) | Dans quelle mesure le lancer doit-il être amplifié, plus élevé = l'objet est lancé plus rapidement, tandis que plus bas signifie une vitesse de lancer plus lente. |
Pickupable (Ramassable) | Est-ce que l'objet peut être ramassé. |
Proximity (Proximité) | La distance maximale à laquelle cet objet à ramasser peut être atteint. Voir la section ci-dessus pour plus de détails. |