En este apartado se muestra el código de las clases más relevantes detallando algunas de las funciones más importantes.
CONTROL JUEGO
El control del juego tiene las funciones que implementan la carga de código a través de archivos XML. A continuación se adjunta la parte del código relativa a ésta funcionalidad.
También incluye, entre otras, la siguiente función destinada a instanciar un objeto de TextoEditable e incorporarlo a los existentes en el editor.
INPUT EDITOR
El input editor se encarga de mostrar gráficamente las selecciones de texto y ejecutar el primer paso para la modificación según lo visto en la arquitectura del editor. A continuación se detalla el código entero empleado para esta clase:
PASARELA EDITOR
Esta parte de código es una muestra de la pasarela editor actuando para los comandos correspondientes al segundo nivel.
THREADING
El contenido de la clase usada en el último bug detalla el uso de threading[14] para ejecutar esta parte del juego.
En este aspecto cabe destacar la complicación a la hora de intentar realizar diseños con concurrencia en Unity porque, aunque permite su implementación mediante la clase System.Threading de .NET[14], no posibilita interactuar con ningún elemento de la API de Unity.
La API de Unity no está preparada para dar soporte a threads y por tanto, no se puede usar ninguna de sus funciones ni modificar directamente los componentes u objetos del juego. Se hicieron pruebas intentando mostrar de forma más gráfica el flujo de los threads que intervienen en esta parte del juego, representándolos mediante los objetos Bot del tercer nivel. La poca flexibilidad de Unity en este aspecto ha hecho que tuviese que desistir ya que no era viable implementar tantos cambios que afectasen continuamente a otros objetos[15].
Para poder realizar este código, los threads han tenido que interactuar con el resto de elementos del juego mediante variables globales. El hilo principal de Unity se encargaba de gestionar los cambios en base al valor de esas variables.