De acuerdo.
Así que en este vídeo, tenemos el inventario configurado y vamos a empezar a utilizarlo para que la enfermera
y los pacientes vayan al cubículo que se les acaba de asignar.
Así que crea un nuevo archivo de C-sharp y ábrelo.
Llámalo, hazte tratar.
Y esta clase de aquí se basa en realidad en el código original de get patient antes de que lo modificáramos.
Y verás por qué he utilizado esto en un momento, porque en realidad tiene algunas cosas
que son similares al objetivo.
Tenemos que conseguir un cubículo.
No queremos obtener el cubículo de quitar el paciente o cualquier otro lugar.
Vamos a sacarlo de nuestro inventario.
Así que aquí vamos a poner inventario, punto, buscar objeto con etiqueta y darle nuestro cubículo.
Así.
Y si no lo tenemos, por supuesto que devolveremos false o en su defecto null.
Ahora bien, ¿cuáles van a ser los puestos a realizar en esta situación?
¿Qué tenemos que preparar?
Bueno, lo primero es que podríamos añadir un estado al mundo.
Así que mundo pensado, instancia, punto, obtener mundo y punto modificar estado.
Y vamos a añadir un nuevo estado ahí llamado "Treated".
Y básicamente, sólo va a contar el número de pacientes que son tratados.
No se va a utilizar para nada, pero podrás ver cómo sube la cuenta.
Tal vez si se convirtiera en una simulación médica completa, se llevaría la cuenta de cuántos pacientes
fueron realmente tratados en este estado particular.
Y, por lo tanto, podrías desencadenar algún evento, ya sabes, como obtener un presupuesto
extra o conseguir un premio o lo que sea.
Así que es una cosa más que puedes tener en cuenta y puedes poner todo tipo de cosas en ese mundo,
estado con valores.
Ahora, una vez que nos han tratado bien, tenemos que eliminar el cubículo para que pase a inventario, punto
eliminar elemento y eliminaremos el objetivo del propio inventario de los agentes.
Vale, genial.
Así que guarda eso.
Ahora vamos a volver a Unity y obtener el paciente arrastrar y soltar que el nuevo ser tratado en el paciente.
Así que es una de las tareas que ahora vamos a llamar a tratarse.
El objetivo que no necesitamos establecer y las condiciones previas para ello.
Así que si no ponemos ninguna condición previa, es algo que se puede hacer casi de inmediato y no
se puede hacer realmente hasta que estés en la sala de espera.
Así que tiene que haber algún tipo de situación que se active para decir que estamos realmente en la zona de espera.
Desgraciadamente, no podemos buscar en el estado del mundo una condición previa para estar en la zona de
espera porque cada agente que entre va a añadirse al estado del mundo.
Así que habrá algunos casos en los que su agente necesite mantener un conjunto de estados propios.
Y ahí es donde entran en juego las creencias de las que hablé en conferencias anteriores.
Así que volvamos a nuestra carpeta.
Entraremos en nuestro agente y añadiremos algunas creencias.
Así que echemos un vistazo aquí.
Ya hemos añadido esta estructura de creencias, pero no hemos empezado a utilizarla.
Así que para utilizarlo, tenemos que poner algunos valores.
Ahora la propia acción va a querer acceder a las creencias.
Así que volvamos a la acción.
Y al igual que pusimos el inventario allí, vamos a añadir en un mundo público estados creencias y luego abajo en el
despierto vamos a poner las creencias es igual a este punto obtener componente para el agente g punto creencias.
Muy bien.
Así que puedes guardar ese script.
Ahora, vamos a nuestra sala de espera.
Aquí es donde queremos inyectar un estado en el propio sistema de creencias del paciente.
Así que aquí, pondremos creencias, punto, modificar estado, y pondremos en el hospital.
En su.
Así que ahora podemos utilizar en el hospital como una condición previa para que obtener el tratamiento.
Así que de vuelta en la unidad en el paciente, ahora vamos a poner una condición previa en allí y bajo el primer elemento
que va a poner en el hospital.
Asegúrese de que los escribe correctamente para que coincidan.
Ahora, ¿cuál va a ser nuestro efecto posterior?
Bueno, tenemos que añadir uno al menos.
Y el efecto posterior, recuerden, va a coincidir con nuestro objetivo.
Así que para aquí vamos a poner se trata así.
Así que esto es más o menos una acción independiente por sí misma donde está esperando que nuestro hospital se
active.
Y luego tenemos esto es objetivo tratado.
¿Y sabes qué significa eso?
Significa que tenemos que volver al código del paciente para asegurarnos de que el tratamiento es uno de
sus objetivos.
Así que vamos a entrar aquí mientras estamos aquí.
Sólo quiero señalar este método de inicio y la forma en que lo declaré en el ahora sé que en los videos
anteriores lo tengo como override protegido, vacío, inicio y eso es lo que debe tener aquí también.
Se quiere tener para todas las clases que derivan de la clase agente.
Así que esa será la enfermera y cualquier otra cosa que crees.
De acuerdo.
Así que vamos a crear otro sub.
Sólo voy a copiar este y ponerlo aquí debajo y lo pondremos como dos y añadiremos a y nuestro tratamiento
va a ser es tratado y pondremos esto en un cinco porque es más importante que el es espera aunque obviamente
no podemos llegar a es tratado sin que eso ocurra primero.
De acuerdo.
Así que guarda el play de la prensa y echemos un vistazo a esto.
Así que he acelerado el movimiento de mis agentes y también he disminuido la duración de sus acciones
para que no haya tanta espera.
De acuerdo.
Así que la enfermera entra, le da la asignación del cubículo al paciente y no pasa nada.
¿Qué está fallando?
Pues bien, lo que está fallando es el en hospital, que es el desencadenante de que nos traten.
Así que tenemos este hospital de anuncios, pero ¿dónde lo inyectamos?
Bueno, se podría decir, bueno, en realidad lo estamos inyectando.
Lo hacemos en la sala de espera.
Así que a esperar.
Echamos un vistazo aquí.
Ahí está.
Ahí va el sistema de creencias.
Pero, ¿qué no está utilizando el sistema de creencias en este momento?
Bueno, es el planificador.
El plan no es utilizar el sistema de creencias.
El planificador sólo tiene en cuenta los estados del mundo.
Ahora, si recuerdas cuando empezamos a trabajar en el agente, si vamos al agente aquí y encontramos donde
el planificador se crea realmente y se dispara, que es en algún lugar abajo en donde estamos actualización
tardía.
Vamos.
Abajo, abajo, abajo.
La plana está aquí.
Así que planificador es igual a nuevo planificador.
Y entonces nos vamos.
Planificador.
Acciones del plan.
Nuestros objetivos.
Ahora es cuando estamos enviando a través de nuestras creencias.
Así que asegúrate de poner las creencias aquí.
Ahora bien, todo esto está muy bien, pero el planificador que está en el otro extremo todavía no tiene la
capacidad de hacer nada con ellos.
Así que guarda eso.
Vamos a volver al código del planificador real aquí.
Y en la parte superior, lo que tenemos que hacer es crear un constructor sobrecargado para nuestro
nodo que tomará en las creencias, así como el estado del mundo que viene a través de aquí.
Así que vamos a tomar una copia de eso, ponerlo debajo, y luego después de nuestros todos los estados, vamos
a poner en otro diccionario.
Permítanme copiar eso.
Pongámoslo ahí y llamemos a esto estados de creencia.
Así tenemos el mundo y los estados de creencias.
Ahora, esto es poner los estados del mundo allí.
Lo que tenemos que hacer después es añadir también los estados de creencia.
Así que para cada uno.
Par clave-valor, que será una cadena.
Es.
Estar en los estados de la hoja b si.
No este punto de estado contiene clave.
Llave B.
Entonces vamos a seguir adelante y añadirlo.
Así que este estado de punto añade la clave de punto B y el valor de punto B.
Así que ahora puedes estar seguro de que tienes ambas cosas alimentadas.
Así que eso significa también sólo otro pequeño cambio es que cuando creamos nuestro primer nodo que enviamos
a través de los estados del mundo y el estado de la creencia.
Así que vamos a bajar a nuestro planificador donde se crea ese primer nodo.
Así que aquí es donde el primer nodo se está creando y se está enviando nuestros estados del mundo que estamos agarrando
aquí de nuestro singleton.
Acabamos de hacer un método sobrecargado que podemos enviar a través de los estados que vienen del agente.
Ahora, cuando inicialmente configuramos nuestra creación de cola o nuestra creación de plan aquí arriba, permitimos que otro conjunto de estados
viniera a través, pero estábamos configurando eso como nulo.
Así que estos estados aquí son en realidad los estados de creencia, así que vamos a llamarlos estados de creencia.
Y luego aquí abajo queremos añadirlos como parámetro.
Así que creo que los estados y.
Va a ser punto.
Obtener los estados para devolverlos realmente en el formato correcto para el nodo.
Ahora que toma esos parámetros donde creamos los otros nodos, que es abajo.
En el gráfico de construcción donde crea más nodos.
No es necesario cambiar esto porque los estados del mundo que entran aquí son la concatenación de ambos conjuntos
de estados.
Y así cualquier otra hoja hija que se cree para nuestro gráfico siempre va a tener la concatenación
de esos dos estados iniciales, el estado del mundo y el conjunto de creencias dentro de ellos.
Sí.
De acuerdo.
Así que guardemos eso.
Y ahora que estamos recibiendo nuestra en el hospital de alguna parte, vamos a volver aquí, pulse el botón
de reproducción y vamos a echar un vistazo a lo que sucede.
Así que van a desovar como antes.
Aquí se acercan al mostrador de recepción y, una vez registrados, se dirigen a la sala de
redacción.
Y eso va a provocar que la enfermera que va a cruzar.
Así que si viene a su la enfermera, una vez que ella y él se ponen en el mismo espacio como una ubicación de la meta, va a arrastrar los
pies hacia el cubículo, mientras que la evitación de los otros chicos que están llegando.
Muy bien, eso está funcionando muy bien.
Así que lo que voy a hacer ahora es dejarlo como un reto para que intentes crear una nueva acción para
la enfermera que va a conseguir que la enfermera vaya al mismo cubículo que el paciente.
Así que va a implicar la creación de una nueva acción y básicamente sólo la configuración de las condiciones previas correctas y los
efectos posteriores y poner eso en la enfermera.
Ahora bien, una pequeña pista que te daré es que acabamos de crear nuestro tratamiento para nuestro paciente.
Y el código que necesitas para tu enfermera es muy similar para su acción.
Así que adelante, inténtalo.
Y cuando volvamos en el próximo video, te mostraré una forma de hacerlo.