FOS Lock Door System — Standard
Version 2.0.1 · exige FOS Essentials Core 1.3.0 ou plus récent · exige aussi FOS Access 1.0.1, FOS Localization 1.0.1, FOS Teleport 1.0.1, FOS UI Culling 1.0.1
Une porte que les joueurs verrouillent derrière eux : qui est à l’intérieur, mode « ne pas déranger », mode anonyme, une sonnette avec vue caméra, et des passages réservés à qui détient la clé.
Exige FOS Essentials Core 1.3.0, FOS Access 1.0.0, FOS Localization 1.0.0, FOS Teleport 1.0.0 et FOS UI Culling 1.0.0 — tous les quatre gratuits.
Vous venez de la version 1.0 ? Lisez d’abord CHANGELOG.md. Cette version ne partage
aucun nom de classe avec elle, et un prefab que vous avez modifié ne se reporte pas tout
seul.
Éditions
Section intitulée « Éditions »Assets/FOS/LockDoorSystem/└── Standard/ ← vous êtes iciUne édition Pro viendra se placer à côté de celle-ci, en ajoutant des composants aux côtés de ceux du Standard et en dialoguant avec eux par leur API publique. Elle ne remplacera jamais un composant du prefab : la mise à niveau ne vous coûtera pas le câblage déjà fait.
Mise en place
Section intitulée « Mise en place »- Posez FOS Essentials > FOS Lock Door System > Standard > Lock Door System dans votre scène.
- Redimensionnez la Detection Zone pour couvrir la pièce. Gardez son Collider sur Is Trigger, et ne désactivez jamais l’objet — un comportement désactivé cesse de tourner et la pièce paraîtrait vide définitivement. Vous pouvez en revanche éteindre son Mesh Renderer.
- Renseignez le nom de la pièce sur l’affichage. Il écrase ce que contiennent les textes dans la scène : modifiez-le là plutôt que sur le canvas.
- Pour une pièce réservée : ajoutez une Access List (du pack FOS Access) quelque part dans la scène, remplissez-la, et pointez le verrou et les passages vers elle.
- Déplacez les points de téléportation selon la pièce.
Une seule Access List sert toutes les portes du monde. N’en donnez pas une à chaque porte — elles téléchargeraient chacune la même liste.
Composants
Section intitulée « Composants »| Composant | Rôle | Synchro |
|---|---|---|
FOSDoorLock |
Décide : verrouillé, ne pas déranger, anonyme | Manuelle |
FOSDoorOccupancy |
Porte la liste des personnes présentes | Manuelle |
FOSDoorBell |
L’épisode « quelqu’un sonne » | Événements seulement |
FOSDoorDisplay |
Tous les textes, icônes et voyants | Aucune |
FOSDoorPortal |
Un passage, éventuellement réservé | Aucune |
Seul FOSDoorLock décide de quelque chose. Tout le reste le lit. C’est cette
séparation qui vous permet d’ajouter un second panneau, un voyant déporté ou votre propre
comportement sans toucher à l’état : enregistrez-vous avec FOSRegister, exposez une
méthode publique sans paramètre, et vous êtes prévenu à chaque changement.
| Source | Événement envoyé aux inscrits |
|---|---|
FOSDoorLock |
FOSApplyDoorState, et FOSApplyDoorDenied en cas de refus |
FOSDoorOccupancy |
FOSApplyOccupancy |
FOSDoorBell |
FOSApplyBell |
Équivalences avec les réglages de la 1.0
Section intitulée « Équivalences avec les réglages de la 1.0 »| 1.0 | 2.0 |
|---|---|
| VIP Room | Locked on start coché et Unlock when empty décoché |
| Lock For All | Anyone can lock |
| Delay Seconds | Display seconds, sur la sonnette |
| Anonym Length | disparu — le masque est un texte que vous choisissez, le même pour tous |
| Room Name | sur l’affichage |
VIPChecker |
FOSAccessList, du pack FOS Access |
HideSystem |
FOS UI Culling |
TeleportLDS |
FOSDoorPortal, basé sur FOS Teleport |
Traduire la porte
Section intitulée « Traduire la porte »L’interface de l’éditeur est déjà traduite. Les textes affichés dans votre monde vous appartiennent, et se rangent dans la table de FOS Localization :
| Clé | Contient |
|---|---|
lockdoor.ring.who |
Le message de sonnerie. Doit contenir le jeton {player}. |
lockdoor.list.empty |
Affiché à la place de la liste quand la pièce est vide. |
lockdoor.denied.notAllowed |
Affiché à quelqu’un qui n’a pas la clé. |
lockdoor.denied.loading |
Affiché tant que la liste d’accès n’est pas arrivée. |
Laissez le gestionnaire de langue vide et les textes de repli écrits dans l’affichage sont utilisés tels quels. Le pack fonctionne sans FOS Localization câblé — il ne parle alors qu’une seule langue.
Comment fonctionne le côté réseau
Section intitulée « Comment fonctionne le côté réseau »L’état circule uniquement par des variables synchronisées. Un clic prend l’ownership,
écrit, sérialise et applique localement ; tous les autres clients reçoivent
OnDeserialization et appliquent la même chose. Rien n’est reconstruit depuis un
événement : un joueur qui arrive en retard obtient donc l’état complet sans qu’on lui
rejoue quoi que ce soit.
Les demandes vont dans l’autre sens : un client sollicite le propriétaire, et celui-ci vérifie qui appelle réellement avant d’agir. Personne ne peut ajouter, retirer ou sonner à la place d’un autre.
La sonnette ne synchronise rien du tout. Sonner est un événement, pas un état.
Ce que ce pack n’est pas
Section intitulée « Ce que ce pack n’est pas »Le mode anonyme est cosmétique. Il masque les noms sur le panneau, à l’identique pour tous les joueurs — mais n’importe quel client peut déjà lister tout le monde dans l’instance, il ne cache donc rien à quelqu’un de déterminé. C’est une politesse, pas une protection.
L’accès est décidé sur le client du joueur lui-même, comme tout ce qui passe par Udon. Un client modifié peut répondre ce qu’il veut. Ce pack range un monde ; il ne le garde pas.
Ces deux limites sont réelles, et aucune n’a de solution disponible dans Udon. Concevez votre monde en les connaissant plutôt qu’en essayant de les contourner.
French Oasis Studio SAS — contact@frenchoasis.studio
