Guía del programador para entidades y Componentes - LumberyardGuía de usuario de

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.

Guía del programador para entidades y Componentes

Esta guía proporciona a los programadores de motores y juegos ejemplos y prácticas recomendadas para creando y reflejando Lumberyard Componentes de en C++.

Para obtener información sobre el uso del sistema de entidades de componentes en Lumberyard Editor, consulte Uso de entidades de componentes.

Para obtener documentación de referencia de la API de C++ en el sistema de entidades de componentes, consulte la Referencia de la API de C++ de Amazon Lumberyard.

Lumberyard utiliza un modelo ligero de entidad/componente denominado sistema de entidades de componentes para tanto los objetos del juego como los sistemas. Lumberyard Las entidades de son simplemente un ID y un contenedor de los componentes. No tienen ninguna funcionalidad asociada a ellos. LumberyardEl modelo de componente de es granular: Se espera que cada componente proporcione funcionalidad independiente. Se espera que el juego Los objetos de se componen de una o varias entidades con muchos componentes asociados a cada entidad. Lumberyard Los componentes de se comunican entre sí mediante un sistema de mensajería denominado EBuses. Lumberyard espera que utilice EBuses en lugar de tener referencias a otras entidades o sus los componentes.

Lumberyard Los componentes de tienen un ciclo de vida sencillo. Cuando se activa una entidad, llama a Activate() en todos sus componentes. Cuando la entidad se desactiva, llamadas Deactivate() en todos sus componentes. En la pestaña Activate() función: un componente se configura a sí mismo, se conecta a EBuses y asigna recursos o solicitudes de activos de. En la pestaña Deactivate() un componente debe liberar todos los recursos y desconectarse de todos los EBuses. Los componentes deben estar completamente inactivos después de la desactivación, y deberían estar más o menos en el mismo estado en el que están después de Init() se llama. El Init() La función solo se llama una vez y permite a un componente inicialice su estado interno.

nota

Un componente se puede activar y desactivar muchas veces antes de que se elimine. Para ejemplo, podría desactivarse temporalmente mientras se transmite.

El EBus debe establecer las operaciones de API restantes de un componente que implementa.

Los componentes pueden depender de los servicios de. Dichos servicios suelen tener una relación uno a uno con EBuses. Si un componente declara que depende de (requiere) un servicio, cualquier entidad que utiliza el componente también debe contener un componente que proporcione el servicios de.

Los componentes siempre se activan en orden de su dependencia. Por este motivo, un componente siempre puede asumir que los servicios que requiere están disponibles cuando el componente es activado.

Las entidades nunca pueden estar en un estado en el que una de sus dependencias de componentes falta, incluso durante la creación de. En Lumberyardlas herramientas de edición de , esto significa que los componentes cuyas dependencias faltan se eliminan realmente de la entidad y se almacenan en un lista temporal. Cuando todas las dependencias del componente están disponibles, el componente es restaurado a la entidad.