Sistemas de apoyo

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

Usamos los siguientes sistemas para apoyar tanto los sistemas de juego básicos como cualquier objetivo de los requisitos principales de diseño.

UsarAdministrador

UseManager proporcionó una API simple para aplicar un objeto agarrado a algo, como un conjunto de ropa doblada en un maniquí. La función principal para esta API es UseManager.AddUse (etiquetas, objetos de dest

Podríamos eliminar el "usar" con UseManager.RemoveUse, que generalmente era útil cuando se terminaba una misión o un artículo específico se "utilizaba". Además, podríamos agregar o eliminar objetivos con AddUseTargets y RemoveUseTargets .

Destacados

Cu

Este LocalScript utiliza una nueva característica de motor Highlight que dibuja un contorno de un obj

HighlightItemsFunc se usa para comunicarse con otros sistemas client. Por ejemplo, EventManager usa con un comando Activar para habilitar o deshabilitar un

Lore y ThoughtBubbles

Lore and ThoughtBubbles are 2 similar systems. Lore uses a ScreenGui as an on-screen UI container with a child

La información se implementa en el LoreManger LocalScript . Cuando se hace clic o toca, se activa un raycast utilizando una función de ayudante utils.RaycastAlongPointingDir

Nota que usamos Camera.ViewportPointToRay o Camera.ScreenPointToRay para construir el rayo, dependiendo de si fue llamado desde un no toque o toque. Las coordenadas están en sistemas de coordenadas algo diferentes. Para el ratón, lo obtenemos de

Las burbujas de pensamiento son generalmente similares, utilizando un raycast para ver si un malla o sus padres tienen una etiqueta burbuja de pensamiento . También usa el atributo ThoughtText para texto, y una burbuja de pensamiento para apuntar a un objeto de posicionamiento de la interfaz de usuario en el mundo. Las burbujas de pensamiento que usan el mismo posicional de objeto pero tienen diferentes textos tienen diferentes cooldowns.

Cajas Especiales

La lore tiene algunos casos especiales, uno de los cuales es el sellado corrupto. Cu LoreManager también maneja un caso especial con mostrar una pequeña escena corta cuando se hace clic en puertas desactivadas que están bloqueadas hasta que el jugador recoge el sello de la habitación.

En el marcador

Queremos mostrar diferentes iconos en el centro de la pantalla cuando el jugador mira ciertos elementos de interés. El script del cliente OnItemindicator hace un raycast a lo largo de la cámara Class.CFrame.LookVector y analiza los resultados. Según los resultados, establece una imagen en el OnItemIndicator2 ScreenGui .

Cuando no se hacen clics en ningún artículo de interés, el icono predeterminado es un pequeño punto. Podríamos establecer cualquier icono agregando un atributo OnItemIndicator a una mallaespecífica, usando los nombres de onItemIndicatorImages , como Hand, Eye o DoorCurrentlyLocked. El atributo solo se necesita en casos raros, y la

Escriba algunos en un orden de prioridad. Después de que el OnItemIndicator invalidar/reemplazarpor la utils.CanGrabModel(model) o utils.GetTaggedObjectUpHierarchy("Drawer2", model) , comprobamos si es agarrable o un cajón para el icono de la "man


highlightItemsFunc:Invoke({"GetType", curInst})

Las etiquetas Lore y ThoughtBubble se verifican más tarde al verificar las etiquetas. Para las puertas, tenemos dos iconos diferentes: DoorCurrentlyClosed y DoorAlwaysLocked . 1> DoorManager1> establece un atributo de verd

Administrador de puertas

El Administrador de puertasLocalScript usa una etiqueta de puerta y 2>Class.CollectionService2> para administrar la apertura y cierre de puertas. La puerta tiene gatillos frontales y traseros que conectamos con toques y

Cada puerta tiene un sistema de estado simple, DoorState (Cerrado, Abierto, Abierto, Cerrado), con tweens usados para las transiciones. Podemos habilitar o deshabilitar la capacidad de una puerta para abrir o cerrar desde sistemas externos al llamar DoorManager.EnableDoor, que establece un atributo DoorEnabled.

Animador maestro

El Animador de maestrosLocalScript muestra imágenes animadas (atlas de textura

Un objeto con un animado SurfaceGui tendría un Animador ModuleScript

Animaciones de espacio local

Las Animaciones de espacio localLocalScript usa una etiqueta de animación de espacio local para rotar la mayoría de los objetos con una velocidad de rotación y retraso especificados al

Administrador de headlights

El HeadlampManagerLocalScript maneja cuando los usuarios seleccionan el on-screen ImageButton para alternar el foco en la parte superior

Administrador del asiento

No queremos que los jugadores se sienten automáticamente cuando se acercan a un objeto en el que pueden sentarse. En cambio, queremos que los

Gestor de cajas

El script DrawerManager usa una etiqueta Drawer2 y CollectionService para manejar el clic en los cajones para abrirlos o cerrarlos, y reproducir cualquier sonido, audiocorrespondiente. La acción de apertura y cierre se realiza al establecer la posición de objetivo para un 1> Class.PrismaticConstraint1> .

Volúmenes de matar

En algunas áreas de la zona de juego principal, como los rayos eléctricos y el agua cerca del comienzo de la carretera que conduce a la casa, un jugador puede tener su Humanoid.Health configurado como 0 cuando ingresa un volumen con la etiqueta

PlayerMissionRespawn

El script PlayerMissionRespawn usa una etiqueta RespawnVolume y CollectionService para tratar con volúmenes que hacen que los jugadores reaparezcan cuando se tocan. Colocamos estos volúmenes debajo de habitaciones corruptas, ya que muchas

Cuando se procesa GameEvents.PlayerRespawn , el script puede usar RespawnPositions , si la configuración de la misión lo proporciona. Si no, usa TeleportPositions</

Sistemas de Ayudantes Pequeños

Administrador del piano

El script PianoManager usa una etiqueta de Piano y CollectionService para agregar 1> Class.ClickDetector|ClickDetectors1> y reproducir uno de los sonidos del piano cuando se hace clic en el teclado.

Soporte de Ritual

El foyer donde los jugadores colocan sellos tiene un complicado traje que cambia con cada sello colocado en su ubicación definida. Por ejemplo, dependiendo del número de sellos colocados, se activan/desactivan luces y rayos, se cambia la transparencia de ciertos objetos, etc. El RitualSupport <

Administrador de restaurables

Algunos objetos agarrables son importantes para el juego, como los sellos, y no queríamos que se perdieran si un jugador las soltaba en alguna parte. Si un objeto tiene una etiqueta de Restauración, el script de RestauradorManager recuerda su transformación

Portales

En algunas misiones, teletransportamos a los jugadores a una distancia corta dentro de una misión, como respawning jugadores que caen de una plataforma giratoria. Para simplificar la configuración de este tipo de teletransportación, que se llama "Portals" en el script, una función de ayudante ProcessPortal en DemoUtilities


P1.Touched:Connect(function(otherPart) utils.ProcessPortal(otherPart, P2) end)

ProcessPortal maneja la verificación de que otra parte es un humano, teletransportando al jugador a través de un CFrame cambio de coordenada de cambio, y invocando una pequeña escena para ocultar la transición usando un evento Teleport_Jump en 0> 1> EventManager 1> 0>.

Guías de configuración

Tenemos varios scripts de configuración, definición de datos y común funcionalidad: DemoConfig . Definiciones de misiones. Numeraciones para estados del juego, eventos para comunicaciones del cliente-servidor. Configuración de demostración global . Desarrollamos en un lugar, pero lanzamos (y prueba de jugabilidad/ prueba de juego) en otros. El script comprueba el ID del lugar y habilita/deshabilita varias funciones de cheats y funciones de diagnóstico. DemoUtilities . Varias utilidades. Gestionar con transformaciones. Configurar visibilidad, anclar o otras propiedades. Verificar por un punto en una caja delimitadora. Encontrar objetos en la jerarquía por nombre "dotted" . Administrar TempStorage (que se puede usar para mover temporalmente los modelos "en algún lugar lejos" y traer de vuelta más tarde). Haga clic en ayudantes de detección. AudioUtilities . Un par de funciones para reproducir sonidos aleatorios pesados de un establecer. GrabUtil . Funciones de ayudante para agarrar.