Trabajo con sectores dinámicos - Guía del usuario de Lumberyard

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Trabajo con sectores dinámicos

Los sectores constituyen una herramienta eficaz para organizar los datos de entidades en sus mundos. En el editor, puede elegir sectores de cascada y organizar los datos de entidades en cualquier granularidad deseada y recibir los beneficios de transferencia de datos y herencia en toda la jerarquía. Un juego basada en niveles, por ejemplo, implementa cada nivel como su propio activo de sector que contiene las instancias de muchos otros sectores. Estos sectores podrían potencialmente tener muchos niveles. Puede elegir crear sectores a partir de otros sectores y heredar solo los elementos que desee.

Los activos de sector estándar (archivos .slice) se basan en el editor y no se pueden incluir en una instancia en el tiempo de ejecución. Sin embargo, Lumberyard proporciona un mecanismo para designar cualquier.sliceactivo que has creado comodinámico slice. Al designar un sector como sector dinámico, Asset Processor procesa y optimiza el sector automáticamente, produciendo un.dynamicsliceactivo de archivos. Un sector dinámico es simplemente la versión de tiempo de ejecución de su sector de origen y contiene únicamente los componentes de tiempo de ejecución. Los componentes que dependen del editor se han convertido en sus contrapartidas de tiempo de ejecución. Además, se han aplanado los sectores dinámicos y ya no mantienen una jerarquía de datos, porque ello aumentaría la huella de memoria y reduciría el desempeño de la instanciación.

En el ejemplo de juego basado en niveles mencionado anteriormente, podría designar el sector de nivel gigante como un sector dinámico. Cuando el juego carga el nivel, lo hace creando una instancia del archivo .dynamicslice resultante.

Puede elegir generar sectores dinámicos en la granularidad que sea adecuada para el juego. Debido a que los sectores se cargan de forma totalmente asíncrona, son una buena opción para las estrategias de streaming. Por ejemplo, un juego de conducción puede representar cada manzana de la ciudad como un sector independiente y decidir cargar los sectores de forma predictiva basándose en el comportamiento de conducción del jugador.

Para crear un sector dinámico

  1. En el navegadorAsset Browser, haga clic derecho en un.sliceactivo y elijaEstablecer Dynamic Slice.

    
                        Establezca el sector dinámico en elAsset Browser.
  2. Asset Processor procesa el origen.slicey genera un.dynamicslicefile. En el navegadorAsset Browser, puede ver el.dynamicsliceaparece como su propio recurso.

    
                        Aparece un sector dinámico recién creadodinámico en laAsset Browser.

Para eliminar un sector dinámico

  • En el navegadorAsset Browser, haga clic con el botón derecho en el archivo dinámico y elijaSector dinámico no establecido.

    
                        Establezca el sector dinámico en elAsset Browser.

    Asset Processor elimina el.dynamicslicede la caché de activos.

Instanciación de sectores dinámicos

Puede utilizar el componente Spawner para crear instancias de secciones dinámicas.

Para crear instancias de sectores dinámicos

  1. En el navegadorAsset Browser, seleccione y, a continuación, arrastre la.dynamicsliceactivo para elSlicepropiedad para elSpawner (Generador)componente.

  2. Para crear instancias del sector dinámico cuando comienza el nivel, seleccione Spawn On Activate (Generar al activar).

  3. Para crear instancias del sector dinámico en otro momento, puede utilizar scripts o C++. En el siguiente fragmento de código Lua se utiliza una llamada EBus para indicar al componente Spawner que cree una instancia de su sector dinámico:

    SpawnerComponentRequestBus.Event.Spawn(self.entityId)

    Para obtener más información sobre el trabajo con sectores, consulte Trabajar con sectores.