UE4 | Inventario para Multijugador # 3 | Estructura de interacción




En este artículo, veremos la estructura de inventario que apliqué a mi proyecto multijugador. Esta sección es muy pequeña y no contiene código.


El inventario en sí mismo es un componente utilizado no solo para el personaje , sino también para cualquier objeto en el juego que, según el escenario, puede ser un almacenamiento para los artículos. Por ejemplo: cofre, caja, caja, armario, etc.




Este componente contiene un TArray , cuyos elementos almacenan un mínimo de información necesaria:


  1. El identificador del objeto, en forma de GameplayTag . Como dije antes, GameplayTag es más conveniente que, por ejemplo, FName , ya que reduce significativamente el riesgo de errores.
  2. El número de objetos en el espacio especificado por la variable int .
  3. Categoría del objeto para comprender cómo se puede aplicar. Para este propósito, en lugar de Enum, puedes usar GameplayTagsContainer , que nos permitirá atribuir el objeto a muchos tipos a la vez si es necesario.
  4. Propiedades únicas del objeto, que se almacenan como una estructura de un montón de GameplayTag y flotante . Aquí puede almacenar parámetros y modificadores.

No hay enlaces a los propios objetos en esta estructura de inventario, porque después de guardar y cargar el juego, se referirán a áreas que ya almacenan otros datos. Por lo tanto, necesitas alguna herramienta que pueda restaurar (reaparecer) todos los objetos después de cargar el juego. Aquí DataAsset viene al rescate , que siempre está disponible en el lado del servidor (porque en nuestro caso lo conectamos a través de GameMode ) y está listo para ayudar a colocar el objeto en el escenario.


El componente de inventario también contiene la lógica para eliminar y agregar el número requerido de objetos, la lógica para llenar los espacios. Todas las funciones iniciadas en el contenedor deberían funcionar solo en el lado del servidor.


La estructura de la interacción del inventario y la base de datos es la siguiente

Las propiedades únicas del objeto, como los componentes adicionales y la lógica, se configuran fácilmente mediante C ++ y / o Blueprint .


En la siguiente sección, le mostraré cómo puede conectar el componente creado a Character o cualquier otro objeto.


Cualquier crítica constructiva es bienvenida. Preferiblemente respaldado por sugerencias.


PD: En los primeros dos artículos se han agregado imágenes explicativas.

Source: https://habr.com/ru/post/es419347/


All Articles