FOS Lock Door System — Standard
Versión 2.0.1 · requiere FOS Essentials Core 1.3.0 o posterior · también requiere FOS Access 1.0.1, FOS Localization 1.0.1, FOS Teleport 1.0.1, FOS UI Culling 1.0.1
Una puerta que los jugadores cierran tras de sí: quién está dentro, modo «no molestar», modo anónimo, un timbre con vista de cámara y pasos reservados a quien tiene la llave.
Requiere FOS Essentials Core 1.3.0, FOS Access 1.0.0, FOS Localization 1.0.0, FOS Teleport 1.0.0 y FOS UI Culling 1.0.0 — los cuatro gratuitos.
¿Vienes de la versión 1.0? Lee antes CHANGELOG.md. Esta versión no comparte ningún
nombre de clase con ella, y un prefab que hayas modificado no se traslada por sí solo.
Ediciones
Sección titulada «Ediciones»Assets/FOS/LockDoorSystem/└── Standard/ ← estás aquíUna edición Pro se situará junto a esta, añadiendo componentes al lado de los del Standard y hablando con ellos por su API pública. Nunca sustituirá un componente del prefab, así que actualizar no te costará el cableado ya hecho.
Puesta en marcha
Sección titulada «Puesta en marcha»- Coloca FOS Essentials > FOS Lock Door System > Standard > Lock Door System en tu escena.
- Redimensiona la Detection Zone para cubrir la sala. Mantén su Collider en Is Trigger y no desactives nunca el objeto: un comportamiento desactivado deja de ejecutarse y la sala parecería vacía para siempre. Sí puedes apagar su Mesh Renderer.
- Indica el nombre de la sala en la pantalla. Sobrescribe lo que contengan los textos de la escena, así que edítalo ahí y no en el canvas.
- Para una sala reservada: añade una Access List (del pack FOS Access) en algún punto de la escena, rellénala y apunta hacia ella el cerrojo y los pasos.
- Mueve los puntos de teletransporte según la sala.
Una sola Access List sirve para todas las puertas del mundo. No des una a cada puerta: cada una descargaría la misma lista.
Componentes
Sección titulada «Componentes»| Componente | Función | Sincronización |
|---|---|---|
FOSDoorLock |
Decide: cerrado, no molestar, anónimo | Manual |
FOSDoorOccupancy |
Guarda quién está en la sala | Manual |
FOSDoorBell |
El episodio «alguien llama» | Solo eventos |
FOSDoorDisplay |
Todos los textos, iconos e indicadores | Ninguna |
FOSDoorPortal |
Un paso, opcionalmente reservado | Ninguna |
Solo FOSDoorLock decide algo. Todo lo demás lo lee. Esa separación es la que te
permite añadir un segundo panel, un indicador remoto o tu propio comportamiento sin tocar
el estado: regístrate con FOSRegister, expón un método público sin parámetros y se te
avisa en cada cambio.
| Origen | Evento enviado a los registrados |
|---|---|
FOSDoorLock |
FOSApplyDoorState, y FOSApplyDoorDenied al denegar |
FOSDoorOccupancy |
FOSApplyOccupancy |
FOSDoorBell |
FOSApplyBell |
Equivalencias con los ajustes de la 1.0
Sección titulada «Equivalencias con los ajustes de la 1.0»| 1.0 | 2.0 |
|---|---|
| VIP Room | Locked on start marcado y Unlock when empty sin marcar |
| Lock For All | Anyone can lock |
| Delay Seconds | Display seconds, en el timbre |
| Anonym Length | desaparecido — la máscara es un texto que eliges, igual para todos |
| Room Name | en la pantalla |
VIPChecker |
FOSAccessList, del pack FOS Access |
HideSystem |
FOS UI Culling |
TeleportLDS |
FOSDoorPortal, sobre FOS Teleport |
Traducir la puerta
Sección titulada «Traducir la puerta»La interfaz del editor ya está traducida. Los textos que se ven en tu mundo son tuyos y van en la tabla de FOS Localization:
| Clave | Contiene |
|---|---|
lockdoor.ring.who |
El mensaje de llamada. Debe contener el testigo {player}. |
lockdoor.list.empty |
Se muestra en lugar de la lista cuando la sala está vacía. |
lockdoor.denied.notAllowed |
Se muestra a quien no tiene la llave. |
lockdoor.denied.loading |
Se muestra mientras la lista de acceso no ha llegado. |
Deja vacío el gestor de idioma y se usarán tal cual los textos de reserva escritos en la pantalla. El pack funciona sin FOS Localization conectado: simplemente habla un solo idioma.
Cómo funciona la parte de red
Sección titulada «Cómo funciona la parte de red»El estado viaja únicamente por variables sincronizadas. Un clic toma la propiedad,
escribe, serializa y aplica en local; los demás clientes reciben OnDeserialization y
aplican lo mismo. Nada se reconstruye a partir de un evento, así que quien llega tarde
obtiene el estado completo sin que se le repita nada.
Las peticiones van en sentido contrario: un cliente pide al propietario, y este comprueba quién llama realmente antes de hacer nada. Nadie puede añadir, quitar ni llamar en nombre de otro.
El timbre no sincroniza absolutamente nada. Llamar es un evento, no un estado.
Lo que esto no es
Sección titulada «Lo que esto no es»El modo anónimo es cosmético. Oculta los nombres del panel, igual para todos los jugadores, pero cualquier cliente puede ya enumerar a todo el mundo en la instancia: no le esconde nada a alguien decidido. Es una cortesía, no una protección.
El acceso se decide en el cliente del propio jugador, como todo en Udon. Un cliente modificado puede responder lo que quiera. Esto ordena un mundo; no lo vigila.
Ambos límites son reales y ninguno tiene solución disponible en Udon. Diseña tu mundo conociéndolos, en vez de intentar rodearlos.
Créditos
Sección titulada «Créditos»French Oasis Studio SAS — contact@frenchoasis.studio
