FOS Access
Versión 1.0.1 · requiere FOS Essentials Core 1.0.0 o posterior
Responde a una sola pregunta — ¿tiene este jugador la llave? — y permite que cualquier cosa de tu mundo la formule. Requiere FOS Essentials Core 1.0.0.
Componentes
Sección titulada «Componentes»| Componente | Función |
|---|---|
FOSAccessList |
Contiene las fuentes y la respuesta. Uno por lista. |
FOSAccessGate |
Muestra u oculta objetos según esa respuesta. Uno por sitio filtrado. |
Menú: Add Component > FOS Essentials > Access > ...
Puesta en marcha
Sección titulada «Puesta en marcha»- Crea un GameObject vacío y añade FOS Essentials > Access > Access List.
- Rellena al menos una fuente (más abajo).
- Apunta a ese componente todo lo que necesite la respuesta: un
FOSAccessGate, una puerta, tu propio comportamiento.
Varias listas independientes — VIP, staff, equipo de un evento — significan varios
componentes FOSAccessList, cada uno en su objeto. Una lista es una cosa, no una
categoría dentro de un componente.
Las cuatro fuentes
Sección titulada «Las cuatro fuentes»Son acumulativas: basta con que una sola conceda el acceso.
| Fuente | Se cambia sin republicar | Responde al instante |
|---|---|---|
| Lista en el inspector | no | sí |
| Lista remota (URL) | sí | no — es una descarga |
| Producto de VRChat | sí | no — llega con la llamada de compra |
| Master de la instancia | — | sí |
Lo habitual es combinar las dos primeras: las dos o tres personas de confianza que van con el mundo, más una lista que puedes editar después sin volver a abrir Unity.
El formato de la lista remota
Sección titulada «El formato de la lista remota»Un nombre visible por línea. Las líneas vacías se ignoran, igual que las que empiezan por
#, que es como se anota el archivo:
# staffFrankk Darko# invitados del evento de eneroSome PlayerLa regla del # vale solo para la lista remota. En el inspector un nombre es un
nombre: un nombre visible puede empezar perfectamente por almohadilla.
Mover nombres de una a otra
Sección titulada «Mover nombres de una a otra»El inspector tiene Import from a file y Export to a file, ambos con el formato de arriba. Así, una lista del inspector puede exportarse y alojarse tal cual, y un archivo ya publicado puede recuperarse dentro del prefab. Un nombre por línea es una sola columna: por eso aquí no hay CSV, no habría nada que separar.
La carga, y por qué un «no» no siempre es un no
Sección titulada «La carga, y por qué un «no» no siempre es un no»Mientras una lista remota se descarga, la lista no puede responder con honestidad.
FOSIsResolved() te dice si la respuesta es definitiva:
- un sí siempre lo es — las fuentes solo añaden personas, ninguna puede retirar lo que otra concedió, así que quien ya figura en la lista del inspector está dentro para siempre;
- un no solo lo es cuando ya no queda nada en camino.
Una interfaz que deniega debería distinguir ambos casos. «No estás en la lista» y «la lista aún no ha llegado» no se arreglan igual, y un jugador al que no se le dice ninguna de las dos cosas concluye simplemente que el botón está roto.
API pública
Sección titulada «API pública»| Llamada | Respuesta |
|---|---|
FOSIsAllowed() |
¿Tiene la llave el jugador local? |
FOSIsResolved() |
¿Es definitiva esa respuesta? |
FOSState() |
StateLoading, StateReady o StateFailed |
FOSRegister(behaviour) |
Recibir FOSApplyAccess cada vez que cambie la respuesta |
Un comportamiento que se registra debe exponer un FOSApplyAccess() público y sin
parámetros.
La puerta
Sección titulada «La puerta»FOSAccessGate se coloca sobre lo que filtra en lugar de listarlo centralmente: la
regla vive donde vive el objeto, la ves al seleccionarlo, y lo acompaña si lo mueves.
Nunca toca su propio GameObject. No es un detalle de cortesía: un comportamiento de Udon en un objeto desactivado deja de ejecutarse, así que jamás recibiría la respuesta que debía volver a encenderlo. Se quedaría apagado hasta reiniciar el mundo, sin error y sin explicación. Si no le das objetivos explícitos, gobierna a sus hijos directos: coloca la puerta en un objeto vacío y aparca debajo lo que deba filtrarse.
Lo que esto no es
Sección titulada «Lo que esto no es»Ordena un mundo. No lo protege.
La respuesta se calcula en el cliente del propio jugador, así que un cliente modificado puede responder lo que quiera, y una lista remota servida por una URL pública la puede leer cualquiera. Udon no ofrece nada mejor: no existe ninguna comprobación en servidor a la que recurrir.
No pongas en una lista más que nombres visibles, y nunca dejes que esto decida algo cuyo acceso por parte de un visitante decidido te molestaría.
Créditos
Sección titulada «Créditos»French Oasis Studio SAS — contact@frenchoasis.studio
