top of page

Van Damme Devlog #04 | Arquitectura con Scriptable Objects

  • Foto del escritor: Samuel Rodríguez
    Samuel Rodríguez
  • 7 oct
  • 2 Min. de lectura

Debido a que Van Damme llevaba un tiempo parado, decidí que era hora de rehacer el proyecto desde 0. Primera parada Scriptable Objects.


¿Qué es un Scriptable Object?


Un Scriptable Object es un tipo en Unity que se suele usar como contenedor de datos. No puedes crear instancias ni asignarlo como un componente ya que debes almacenarlo como un asset.

Se suele usar para almacenar datos y compartirlos entre varios objetos aunque tienen muchos usos. Aquí dejo un vídeo muy interesante que habla más a fondo de los Scriptable Objects:


¿Cómo usa Van Damme los Scriptable Objects?


Unity tiene un pdf muy interesante en su web mostrando ejemplos de otros usos además de ser contenedores de datos.

Pueden extender los enums, servir para implementar un patrón command, un patrón observer, mejorar el flujo del juego, reducir acoplamiento...


Van Damme usa los Scriptable Objects de dos maneras diferentes:


Patrón Observer

Creo un Scriptable Object que representa un evento.


ree

Asigno al emisor y al receptor dicho evento y así podemos tener una comunicación desacoplada sin referencias entre los integrantes de la comunicación.

Emisor de los eventos
Emisor de los eventos
Receptor de los eventos
Receptor de los eventos

El esquema sería algo así:

ree

Managers semi-singletons.

En Van Damme existen diferentes tipos de managers (PlayersManager, TerritoriesManager...) que necesitan comunicarse entre ellos pero que no necesitan estar en la escena para funcionar ya que trabajan principalmente con datos.


Al crear estos managers cómo Scriptable Objects podemos asignarlos como assets en el inspector de los scripts que lo necesiten. Con esto reducimos el acoplamiento y mejoramos el flujo o permitimos que un objeto instanciado en escena tenga acceso a los managers sin necesidad de hacer FindFirstObjectByType.


Además, evitamos la creación de singletons (a primera vista apetecibles pero no recomendados por algunos) al decidir quién tendrá acceso a esos managers en lugar de tener una acceso global.

Entradas recientes

Ver todo
Van Damme Devlog #0 | Idea

El proyecto Van Damme pretende ser un juego de estrategia al estilo 'Risk' pero cambiando el sistema de combate mediante dados por...

 
 
 

Comentarios


  • GitHub
  • itch-io-icon-1024x1024-fev9qpvd
  • alt.text.label.Twitter

©2023 por SamuDev. Creado con Wix.com

bottom of page