Zum Inhalt springen

FOS Lock Door System — Standard

Version 2.0.1 · benötigt FOS Essentials Core 1.3.0 oder neuer · benötigt außerdem FOS Access 1.0.1, FOS Localization 1.0.1, FOS Teleport 1.0.1, FOS UI Culling 1.0.1

Eine Tür, die Spielende hinter sich abschließen: wer drin ist, Bitte-nicht-stören, anonymer Modus, eine Klingel mit Kamerabild und Durchgänge, die dem Schlüsselinhaber vorbehalten sind.

Benötigt FOS Essentials Core 1.3.0, FOS Access 1.0.0, FOS Localization 1.0.0, FOS Teleport 1.0.0 und FOS UI Culling 1.0.0 — alle vier kostenlos.

Du kommst von Version 1.0? Lies zuerst CHANGELOG.md. Diese Fassung teilt keinen einzigen Klassennamen mit ihr, und ein Prefab, das du verändert hast, wandert nicht von selbst mit.


Assets/FOS/LockDoorSystem/
└── Standard/ ← du bist hier

Eine Pro-Edition wird sich daneben stellen: Sie fügt Komponenten neben denen des Standard hinzu und spricht mit ihnen über deren öffentliche API. Sie ersetzt nie eine Komponente am Prefab, ein Umstieg kostet dich also nicht die bereits erledigte Verdrahtung.


  1. Ziehe FOS Essentials > FOS Lock Door System > Standard > Lock Door System in deine Szene.
  2. Passe die Detection Zone an den Raum an. Lass ihren Collider auf Is Trigger und deaktiviere das Objekt niemals — ein deaktiviertes Verhalten läuft nicht mehr, und der Raum wirkte dauerhaft leer. Den Mesh Renderer darfst du abschalten.
  3. Trage den Raumnamen an der Anzeige ein. Er überschreibt, was die Texte in der Szene enthalten: bearbeite ihn dort und nicht am Canvas.
  4. Für einen reservierten Raum: Füge irgendwo in der Szene eine Access List (aus FOS Access) hinzu, fülle sie und richte Schloss und Durchgänge darauf aus.
  5. Verschiebe die Teleportpunkte passend zum Raum.

Eine einzige Access List bedient jede Tür der Welt. Gib nicht jeder Tür eine eigene — jede würde dieselbe Liste herunterladen.


Komponente Aufgabe Sync
FOSDoorLock Entscheidet: abgeschlossen, nicht stören, anonym Manuell
FOSDoorOccupancy Hält, wer im Raum ist Manuell
FOSDoorBell Die Episode „jemand steht vor der Tür” Nur Events
FOSDoorDisplay Alle Texte, Symbole und Anzeigen Keine
FOSDoorPortal Ein Durchgang, wahlweise reserviert Keine

Nur FOSDoorLock entscheidet etwas. Alles andere liest mit. Genau diese Trennung erlaubt dir, ein zweites Panel, eine entfernte Anzeige oder dein eigenes Verhalten hinzuzufügen, ohne den Zustand anzufassen: Registriere dich mit FOSRegister, stelle eine öffentliche parameterlose Methode bereit, und du wirst bei jeder Änderung benachrichtigt.

Quelle Event an die Registrierten
FOSDoorLock FOSApplyDoorState, bei einer Ablehnung FOSApplyDoorDenied
FOSDoorOccupancy FOSApplyOccupancy
FOSDoorBell FOSApplyBell

1.0 2.0
VIP Room Locked on start gesetzt und Unlock when empty nicht gesetzt
Lock For All Anyone can lock
Delay Seconds Display seconds, an der Klingel
Anonym Length entfallen — die Maske ist ein Text deiner Wahl, für alle derselbe
Room Name an der Anzeige
VIPChecker FOSAccessList, aus dem Pack FOS Access
HideSystem FOS UI Culling
TeleportLDS FOSDoorPortal, auf Basis von FOS Teleport

Die Oberfläche des Editors ist bereits übersetzt. Die Texte, die in deiner Welt erscheinen, gehören dir und gehören in die Tabelle von FOS Localization:

Schlüssel Enthält
lockdoor.ring.who Die Klingelmeldung. Muss den Platzhalter {player} enthalten.
lockdoor.list.empty Statt der Liste gezeigt, wenn der Raum leer ist.
lockdoor.denied.notAllowed Für jemanden ohne Schlüssel.
lockdoor.denied.loading Solange die Zugriffsliste noch nicht angekommen ist.

Lässt du den Sprachmanager leer, werden die an der Anzeige hinterlegten Ersatztexte unverändert verwendet. Das Pack funktioniert ohne verdrahtetes FOS Localization — es spricht dann eben nur eine Sprache.


Der Zustand reist ausschließlich über synchronisierte Variablen. Ein Klick übernimmt den Besitz, schreibt, serialisiert und wendet lokal an; jeder andere Client erhält OnDeserialization und wendet dasselbe an. Nichts wird aus einem Event rekonstruiert, wer später beitritt, bekommt also den vollständigen Zustand, ohne dass ihm etwas wiederholt wird.

Anfragen laufen in die Gegenrichtung: Ein Client fragt den Besitzer, und der prüft, wer wirklich ruft, bevor er handelt. Niemand kann im Namen einer anderen Person hinzufügen, entfernen oder klingeln.

Die Klingel synchronisiert gar nichts. Klingeln ist ein Ereignis, kein Zustand.


Der anonyme Modus ist kosmetisch. Er verbirgt Namen auf dem Panel, für alle gleich — aber jeder Client kann ohnehin alle in der Instanz auflisten, vor einer entschlossenen Person hält er also nichts geheim. Es ist eine Höflichkeit, kein Schutz.

Der Zugang wird auf dem Client der Person selbst entschieden, wie alles in Udon. Ein veränderter Client kann antworten, was er will. Dies räumt eine Welt auf; es bewacht sie nicht.

Beide Grenzen sind real, und für keine gibt es in Udon eine Lösung. Plane deine Welt mit diesem Wissen, statt es umgehen zu wollen.


French Oasis Studio SAS — contact@frenchoasis.studio