<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress.com" -->
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"><url><loc>https://gamecodetips.com/2017/08/09/introduccion/</loc><lastmod>2020-03-06T00:14:49+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2019/09/24/mecanicas-como-servicios/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2019/09/runner-1-1.png</image:loc><image:title>runner-1</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2019/09/character.png</image:loc><image:title>character</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2019/09/movement-1-1.png</image:loc><image:title>movement-1</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2019/09/movement-3-1.png</image:loc><image:title>movement-3</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2019/09/movement-2-1.png</image:loc><image:title>movement-2</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2019/09/mess.png</image:loc><image:title>mess</image:title></image:image><lastmod>2020-02-16T19:04:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/09/02/posicion-relativa-y-seguimiento/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/2017-09-02-17_39_51-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-09-02 17_39_51-UnityLab - Microsoft Visual Studio</image:title><image:caption>Nuevamente usamos la funcion LookAt, pero en este caso vamos a mirar a la interpolacion esferica en un arco formado entre la direccion del misil y la posicion del objetivo.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/2017-09-02-17_38_53-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-09-02 17_38_53-UnityLab - Microsoft Visual Studio</image:title><image:caption>En este caso, segun el signo de la coordenada x vamos a devolver un factor que va a definir si el misil gira a la derecha o a la izquierda.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/2017-09-02-19_00_15-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-09-02 19_00_15-UnityLab - Microsoft Visual Studio</image:title><image:caption>Mientras que exista un objetivo asignado, siempre vamos a saber si esta a la derecha, izquierda, adelante o atras de la entidad que ejecute este comportamiento.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/vectormath2.png</image:loc><image:title>vectormath2</image:title><image:caption>Inverse transform nos permite obtener el vector de posicion de un objeto como si el origen fuera la transform inicial.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/vectormath1.png</image:loc><image:title>vectormath1</image:title><image:caption>En este diagrama se puede ver porque se obtiene esa suma de direccion + posicion</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/2017-09-02-17_38_21-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-09-02 17_38_21-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/2017-09-02-17_38_01-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-09-02 17_38_01-UnityLab - Microsoft Visual Studio</image:title><image:caption>La regla para este ejercicio es forzar al misil a trabajar con este esqueleto, puede girar y moverse hacia adelante.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/2017-09-02-17_37_45-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-09-02 17_37_45-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/relativepos.gif</image:loc><image:title>relativePos</image:title><image:caption>El cubo azul siempre sabe la posicion relativa de su objetivo.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/09/homingcurve.gif</image:loc><image:title>homingCurve</image:title><image:caption>Efecto generado por esta solucion.</image:caption></image:image><lastmod>2020-02-16T19:04:39+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/10/30/chase-camera-elastica/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/elastic1.gif</image:loc><image:title>elastic</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/rigid.gif</image:loc><image:title>rigid</image:title><image:caption>Ejemplo de una camara rigida, esta camara no tiene ningun script, simplemente es hija de la nave en la jerarquia de la escena.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/elastic.gif</image:loc><image:title>elastic</image:title><image:caption>Resultado de aplicar una camara elastica.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-30-00_56_35-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-10-30 00_56_35-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-30-00_55_58-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-10-30 00_55_58-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-30-00_56_19-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-10-30 00_56_19-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-30-00_44_54-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-10-30 00_44_54-UnityLab - Microsoft Visual Studio</image:title><image:caption>El script completo de la chase camera.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-30-00_55_13-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-10-30 00_55_13-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-30-00_40_49-unitylab-microsoft-visual-studio.png</image:loc><image:title>2017-10-30 00_40_49-UnityLab - Microsoft Visual Studio</image:title><image:caption>El script de chase camera integrado a la camara.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-30-00_41_18-unity-2017-2-0f3-personal-64bit-chasecam-unity-unitylab-pc-mac-linux.png</image:loc><image:title>2017-10-30 00_41_18-Unity 2017.2.0f3 Personal (64bit) - Chasecam.unity - UnityLab - PC, Mac &amp; Linux</image:title><image:caption>Jerarquia de referencia</image:caption></image:image><lastmod>2020-02-16T19:04:23+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/04/25/punteria-dinamica/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/04/crosshair.gif</image:loc><image:title>crosshair</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/04/2018-04-25-13_41_53.png</image:loc><image:title>2018-04-25 13_41_53-</image:title><image:caption>El inspector de cada componente de la mira, lo importante es especificar las anclas de Unity!</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/04/2018-04-25-13_41_32-unity-2017-4-1f1-personal-64bit-accuracy-unity-unitylab-pc-mac-linux.png</image:loc><image:title>2018-04-25 13_41_32-Unity 2017.4.1f1 Personal (64bit) - Accuracy.unity - UnityLab - PC, Mac &amp; Linux</image:title><image:caption>Anidacion de la mira, cada hijo es uno de los rectangulos verdes.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/04/2018-04-24-14_35_32-unitylab-microsoft-visual-studio.png</image:loc><image:title>2018-04-24 14_35_32-UnityLab - Microsoft Visual Studio</image:title></image:image><lastmod>2020-02-16T19:04:09+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/03/04/efecto-de-explosion/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-22_10_29-unitylab-microsoft-visual-studio.png</image:loc><image:title>2018-03-04 22_10_29-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-22_10_42-unitylab-microsoft-visual-studio.png</image:loc><image:title>2018-03-04 22_10_42-UnityLab - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/norm.png</image:loc><image:title>norm</image:title><image:caption>De esta manera calculamos nuestro vector de empuje, usando unicamente la posicion de la explosion y la fuerza de empuje.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/exp.gif</image:loc><image:title>exp</image:title><image:caption>Efecto final del ejemplo</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-18_29_43-photos.png</image:loc><image:title>2018-03-04 18_29_43-Photos</image:title><image:caption>Asi lucira nuestra prefab de objeto empujable, para este ejemplo use cubos.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-18_28_53-photos.png</image:loc><image:title>2018-03-04 18_28_53-Photos</image:title><image:caption>Asi se veria nuestra prefab en el editor</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-18_28_23-photos.png</image:loc><image:title>expl prefab</image:title><image:caption>Asi se veria la prefab, el componente AutoDispose simplemente destruye el objeto luego de determinado tiempo.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-18_26_53-unity-2017-3-0f3-personal-64bit-pushable-unity-unitylab-pc-mac-linux.png</image:loc><image:title>2018-03-04 18_26_53-Unity 2017.3.0f3 Personal (64bit) - Pushable.unity - UnityLab - PC, Mac &amp; Linux</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-18_22_45-unitylab-microsoft-visual-studio.png</image:loc><image:title>expl1</image:title><image:caption>Clase Explosion, mantiene un control interno de la duracion del efecto fisico.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/03/2018-03-04-18_23_17-unitylab-microsoft-visual-studio.png</image:loc><image:title>expl2</image:title><image:caption>Por cada elemento que exista dentro del area designada, la explosion va a llamar a la funcion PushFrom, esto solo va a ocurrir durante la duracion asignada del efecto. </image:caption></image:image><lastmod>2020-02-16T19:03:55+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/10/23/savefiles-con-xml/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-23-13_39_40-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-10-23 13_39_40-marauders_dev - Microsoft Visual Studio</image:title><image:caption>SaveFile se encarga de serializar el objeto de datos y guardar el archivo.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-20-13_24_39-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-10-20 13_24_39-marauders_dev - Microsoft Visual Studio</image:title><image:caption>Guardando un perfil de jugador en ArenaSave</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-20-13_24_15-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-10-20 13_24_15-marauders_dev - Microsoft Visual Studio</image:title><image:caption>Set de datos de un archivo de Marauders Arena</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-20-13_22_55-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-10-20 13_22_55-marauders_dev - Microsoft Visual Studio</image:title><image:caption>Primero una funcion basica pero muy necesaria para evitarse tener que crear los archivos a mano. CreateFile se asegura que tanto el directorio como el archivo existan.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-20-13_23_44-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-10-20 13_23_44-marauders_dev - Microsoft Visual Studio</image:title><image:caption>Aca hay un ejemplo de carga de datos, llamamos a la funcion OpenSaves dandole el tipo de objeto que queremos deserializar y el nombre del archivo. En este momento es el momento ideal para implementar un failsafe si el archivo falla en cargar.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-20-13_22_29-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-10-20 13_22_29-marauders_dev - Microsoft Visual Studio</image:title><image:caption>OpenSaves se encarga de abrir un archivo y deserializar su contenido en el tipo dado T. Hay 2 cosas para notar en esta funcion. El uso del bloque try catch es porque pueden existir problemas de permisos de lectura y el using es porque de esa manera nos aseguramos de cerrar el file streamer creado.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-20-13_21_25-c__users_jrodriguez_documents_unityprojects_marauders_dev_assets_data_arena-xml.png</image:loc><image:title>2017-10-20 13_21_25-C__Users_jrodriguez_Documents_UnityProjects_marauders_dev_Assets_Data_Arena.xml</image:title><image:caption>Asi se ve un archivo XML</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/10/2017-10-20-13_22_11-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-10-20 13_22_11-marauders_dev - Microsoft Visual Studio</image:title><image:caption>FileManagment es una clase estatica, no necesita instancia propia ya que su uso es volatil. La primer constante definida es la ubicacion raiz de los archivos.</image:caption></image:image><lastmod>2020-02-16T19:02:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/09/17/linq-y-lambda-expressions/</loc><lastmod>2020-02-16T19:02:36+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/26/suavizado-de-camara/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-26-00_18_40-unitylab-microsoft-visual-studio.png</image:loc><image:title>rigid</image:title><image:caption>Con este script rigido nos aseguramos que el ancha de la camara siempre este en la posicion del objetivo.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/smooth.gif</image:loc><image:title>smooth</image:title><image:caption>El resultado final del suavizado, con cambio de objetivo y su transicion adecuada.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/rigid.gif</image:loc><image:title>rigid</image:title><image:caption>Camara con seguimiento rigido</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/lerp.gif</image:loc><image:title>lerp</image:title><image:caption>La posicion de la esfera roja esta calculada como Vector3.Lerp(azul.position, verde.position, 0.3f);</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/inaction.gif</image:loc><image:title>inaction</image:title><image:caption>Aqui se puede ver como el punto de anclaje de la camara persigue al jugador con un movimiento muy elastico.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-26-00_07_58-unitylab-microsoft-visual-studio.png</image:loc><image:title>smoothed</image:title><image:caption>Movimiento de camara con Lerp.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-26-00_08_29-unity-2017-1-0f3-personal-64bit-untitled-unitylab-pc-mac-linux-standa.png</image:loc><image:title>anchor</image:title><image:caption>El ancla se usa para evitar usar desplazamientos lineales en el codigo de la camara</image:caption></image:image><lastmod>2020-02-16T19:01:51+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/24/conociendo-c-pt-4-clases-abstractas-y-herencia/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-24-02_23_41-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>2017-08-24 02_23_41-MaraudersDev - Microsoft Visual Studio</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-24-02_23_54-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>ballistic</image:title><image:caption>Sin embargo, por el polimorfismo, podemos asignar una referencia a cualquier objeto que tenga un script que herede de TurretControllerBase.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-24-02_23_10-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>editor1</image:title><image:caption>En el editor lo vamos a ver asi.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-24-02_22_22-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>public abstract</image:title><image:caption>Podemos definir una variable publica como tipo de clase abstracta con la intencion de recibir referencias de un hijo.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-24-02_16_12-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>override Shoot</image:title><image:caption>En la sobre escritura del metodo Shoot, tenemos el comportamiento especifico de la torreta de proyectil, y al final llama al base.Shoot() que ejecuta el metodo del padre. En este caso el llamado va al final porque el codigo base contiene el reseteo de timers y cambio de barriles.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-24-02_06_20-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>virtual Shoot</image:title><image:caption>virtual Shoot es una funcion con implementacion que va a aplicar para todas las torretas.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-23-19_56_57-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>ballistic</image:title><image:caption>Definicion de un hijo de TurretControllerBase, a su vez, TurretControllerBase hereda de MonoBehaviour, asi que BallisticTurretController va a poder ser importado en Unity como script.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-23-19_57_45-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>finishReload</image:title><image:caption>El metodo que se ejecuta una vez que el tiempo de recarga termino es el mismo para todas las torretas, no requiere modificacion especifica alguna.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-23-19_56_18-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>turret controller base</image:title><image:caption>Declaracion de una clase abstracta, que ademas hereda de MonoBehaviour y permite ser levantada por unity como Script.</image:caption></image:image><lastmod>2020-04-20T04:20:03+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/20/conociendo-c-pt-3-interfaces-y-polimorfismo/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-20-21_13_51-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>casting</image:title><image:caption>Casteo seguro, cuando usamos la palabra as para castear de un tipo a otro, en el caso que no sea casteable, la referencia sera nula.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-20-21_08_12-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>asignaciones</image:title><image:caption>Ambas asignaciones son validas, pero al momento de consumir ra referencia interact sin transformaciones solo vamos a tener acceso a los miembros declarados en la interfaz.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-20-20_40_40-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>Interfaz</image:title><image:caption>Definicion de interfaz IInteractable, usualmente la nomenclatura para interfaz es un verbo con terminacion able (convirtiendolo en adjetivo) con una 'I' adelante. Ejemplo: IDestroyable </image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-20-20_41_50-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>FormDesk</image:title><image:caption>La clase FormDesk implementa IInteractable, es en la implementacion mismo que vemos que tipo de comportamiento van a tener los miembros declarados en la interfaz.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-20-20_43_09-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>variable interactable</image:title><image:caption>Este campo es de tipo IInteractable, permitiendo asignarle una referencia a cualquier instancia de una clase que implemente esta interfaz.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-20-20_45_17-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>method</image:title><image:caption>Naturalmente, no estoy referenciando directamente a la clase, por ende solo voy a tener acceso a los metodos y propiedades decalrados en la interfaz.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-20-20_46_32-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>asignando</image:title><image:caption>En este caso, el componente que va a extraerse del padre puede ser FormDesk, o AttachmentDesk, o cualquier clase que implemente IInteractable. Simplemente va a ser extraida como tipo IInteractable.</image:caption></image:image><lastmod>2020-02-16T19:00:59+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/15/conociendo-c-pt-2-structs/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-15-16_30_13-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>color</image:title><image:caption>el "col" original no va a cambiar su alpha y una vez que esta funcion termine, el color del sprite renderer va a cambiar pero la instancia de la struct que se creo en ese metodo ya no va a existir. No hay referencias perdidas con las structs.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-15-16_20_45-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>vector3</image:title><image:caption>Si vector3 no fuera una Struct, housePosition seria una referencia a la posicion del personaje, por ende al ejecutar la suma, estariamos alterando la posicion del personaje, y en realidad lo que queremos es designar la posicion donde la casa va a instanciarse.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-15-16_00_04-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>value</image:title><image:caption>En este caso, value es un entero, un tipo de valor. Luego de ejecutar eso, el valor de value va a ser 16, pero el valor de v va a ser 8. Los tipos de valores se copian, no se referencian.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-15-15_59_51-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>Ref</image:title><image:caption>Una clase como GameObject, es un tipo de referencia, por ende luego de ejecutarse esas lineas, el valor de ref1 va a ser null aunque nunca hayamos modificado directamente ref1. ref 1 es una simple referencia a obj.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-15-15_54_12-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>Player save data</image:title><image:caption>Ejemplo de lo que seria un set de datos para un savegame</image:caption></image:image><lastmod>2020-02-16T18:59:17+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/14/conociendo-c-pt-1-enums/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-14-14_34_48-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>operaciones enum</image:title><image:caption>Diferentes operaciones, comparaciones y transformaciones que se pueden hacer con un enum</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-14-14_21_04-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-08-14 14_21_04-marauders_dev - Microsoft Visual Studio</image:title><image:caption>Definicion de la variable del tipo PowerUpType, se puede notar que el color del tipo es diferente al de los value types y al de las clases</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-14-13_29_14-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>indices</image:title><image:caption>Se pueden asignar indices personalizados en un enum</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-14-13_27_30-marauders_dev.png</image:loc><image:title>dropDown</image:title><image:caption>Unity interpreta los enums  y los despliega en el editor como una drop down list, no hay que escribir nada.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-14-13_26_29-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>powerup</image:title><image:caption>En este codigo se ve la unica diferencia entre cada powerup, el resto de la funcionalidad es exactamente igual.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-14-13_25_15-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>enums</image:title><image:caption>Algunos ejemplos de posibles usos para enums</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-14-13_25_52-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>enum</image:title><image:caption>Definicion basica de un enum, en este ejemplo, tipo de powerup</image:caption></image:image><lastmod>2020-02-16T18:59:01+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/13/recursos/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-13-23_15_00-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>GetPrefab</image:title><image:caption>Como obtener un elemento de la coleccion por medio del ID</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-13-23_12_49-settings.png</image:loc><image:title>CarRefsEditor</image:title><image:caption>Pares de ids y prefabs generan una base de datos indentada</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-13-23_14_22-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>PrefabIdPair</image:title><image:caption>Entidad de datos que referencia una prefab con su ID</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-13-23_14_42-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>CarRefs</image:title><image:caption>Definicion de un array con objecto visible desde el editor, mientras que el tipo del array sea Serializable, se va a poder ver en el editor.</image:caption></image:image><lastmod>2020-02-16T18:58:45+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/10/dynamic-label/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-17_37_41-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>DynamicLbl llamado</image:title><image:caption>Varios llamados a la funcion SetLabel, el parametro dentro del ToString es para especificar que omita o no los digitos despues del entero.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-17_19_28-unity-5-6-0f3-personal-64bit-arena-unity-marauders_dev-pc-mac-linux-s.png</image:loc><image:title>2017-08-10 17_19_28-Unity 5.6.0f3 Personal (64bit) - Arena.unity - marauders_dev - PC, Mac &amp; Linux S</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-17_19_12-templating.png</image:loc><image:title>DynamicLabel editor</image:title><image:caption>En el editor vamos a tener un campo de texto para setear el formato de la etiqueta</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-17_14_17-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>Dynamic Label</image:title><image:caption>La funcion dynamic label va a existir con un formato de string y periodicamente va a estar recibiendo informacion para ubicar en ese formato.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-17_13_52-marauders_dev-microsoft-visual-studio.png</image:loc><image:title>2017-08-10 17_13_52-marauders_dev - Microsoft Visual Studio</image:title></image:image><lastmod>2020-02-16T18:57:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/10/helpers-pt-1-referencias-globales/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-01_28_00-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>AudioPlayer</image:title><image:caption>Audio player un unico AudioSource y un repositorio de samples con sus respectivos Ids en un script aparte</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-01_29_04-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>Consumo de GlobalReferences</image:title><image:caption>Asi se consumen los metodos estaticos, no hay instancia, simplemente es una funcion que vive a nivel de definicion de clase.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-01_25_43-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>AudioResources</image:title><image:caption>Asi es como audio resources se comporta, recibe el id de un sample, lo encuentra en el repositorio (array de AudioClips asignados en el editor), se lo asignga al AudioSource y lo reproduce</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-10-01_27_24-maraudersdev-microsoft-visual-studio.png</image:loc><image:title>Global References</image:title><image:caption>La clase estatica Global References cumple la funcion de retornar una referencia del objeto requerido, todo accesible de una manera estatica, sin instancias.</image:caption></image:image><lastmod>2020-02-16T18:57:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2017/08/09/extension_methods/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-09-00_57_35-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>SetAsGhost</image:title><image:caption>A modo ejemplo, este metodo extiende la clase SpriteRenderer de Unity para ofrecer funcionalidad personalizada.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-09-00_59_58-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>Autocomplete</image:title><image:caption>Instantaneamente podemos ver la funcion como si fuera parte de la clase extendida.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-09-00_50_54-ministeriosimulator-microsoft-visual-studio.png</image:loc><image:title>PickOneNoRepeat</image:title><image:caption>De esta manera podemos asegurarnos que 2 elementos no salgan continuados en nuestra generacion aleatoria</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2017/08/2017-08-09-00_38_53-ministeriosimulator-microsoft-visual-studio1.png</image:loc><image:title>Consumiendo PickOne()</image:title><image:caption>Como se puede ver, PickOne() extiende todos los IEnumerable, logrando que la funcion sea accesible desde un array.</image:caption></image:image><lastmod>2020-02-16T18:56:04+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/08/22/arquitectura-unity-para-jams-i/</loc><lastmod>2020-02-16T18:51:56+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/08/22/arquitectura-unity-para-jams-ii/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/cubes.gif</image:loc><image:title>cubes</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_05_17-window.png</image:loc><image:title>2018-08-21 22_05_17-Window</image:title><image:caption>PlayerUnits expone una propiedad llamada NextUnit que sin pedir nada, devuelve el proximo personaje en la lista.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_11_19-window.png</image:loc><image:title>2018-08-21 22_11_19-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_05_04-window.png</image:loc><image:title>2018-08-21 22_05_04-Window</image:title><image:caption>El movimiento pasa a ser privado ya que no se asigna desde afuera. Solo el proveedor de personajes es asignado.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_04_08-window.png</image:loc><image:title>2018-08-21 22_04_08-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_04_56-window.png</image:loc><image:title>2018-08-21 22_04_56-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_04_00-window.png</image:loc><image:title>2018-08-21 22_04_00-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_03_52-window.png</image:loc><image:title>2018-08-21 22_03_52-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-22_03_21-window.png</image:loc><image:title>2018-08-21 22_03_21-Window</image:title></image:image><lastmod>2020-02-16T18:51:37+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/08/22/arquitectura-unity-para-jams-iii/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_14_39-window.png</image:loc><image:title>2018-08-21 23_14_39-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_13_30-window.png</image:loc><image:title>2018-08-21 23_13_30-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_12_27-window.png</image:loc><image:title>2018-08-21 23_12_27-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_13_14-window.png</image:loc><image:title>2018-08-21 23_13_14-Window</image:title></image:image><lastmod>2020-02-16T18:47:34+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/08/22/arquitectura-unity-para-jams-iv/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_50_56-window.png</image:loc><image:title>2018-08-21 23_50_56-Window</image:title><image:caption>Proyectil, solo busca algun componente que implemente la interfaz Health, el proyectil no discrimina</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_50_27-window.png</image:loc><image:title>2018-08-21 23_50_27-Window</image:title><image:caption>Implementacion del enemigo pequeño.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_50_46-window.png</image:loc><image:title>2018-08-21 23_50_46-Window</image:title><image:caption>Implementacion del enemigo grande.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_49_55-window.png</image:loc><image:title>2018-08-21 23_49_55-Window</image:title><image:caption>Implementacion del jugador.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-21-23_48_23-window.png</image:loc><image:title>2018-08-21 23_48_23-Window</image:title><image:caption>Interfaz base.</image:caption></image:image><lastmod>2020-02-16T18:47:14+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/08/22/arquitectura-unity-para-jams-v/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-22-00_10_14-window.png</image:loc><image:title>2018-08-22 00_10_14-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-22-00_09_49-window.png</image:loc><image:title>2018-08-22 00_09_49-Window</image:title><image:caption>Usamos propiedades para formar los strings de nuestros input en runtime.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-22-00_06_32-window.png</image:loc><image:title>2018-08-22 00_06_32-Window</image:title></image:image><lastmod>2020-02-16T18:46:54+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/08/22/arquitectura-unity-para-jams-vi/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-22-00_37_59-window.png</image:loc><image:title>2018-08-22 00_37_59-Window</image:title><image:caption>En este caso, siempre que se haga una accion, se va a llamar al metodo de actualizacion, pero como el vinculo es responsabilidad de otro objeto, a la hora de hacer esta accion se va a llamar a un metodo vacio si este actor no esta seleccionado.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-22-00_28_08-window.png</image:loc><image:title>2018-08-22 00_28_08-Window</image:title><image:caption>Tambien tendra los metodos de vinculacion y desvinculacion.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-22-00_28_37-window.png</image:loc><image:title>2018-08-22 00_28_37-Window</image:title><image:caption>Al cambiar de modo, vinculamos la UI al actor seleccionado.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/08/2018-08-22-00_27_54-window.png</image:loc><image:title>2018-08-22 00_27_54-Window</image:title><image:caption>El controlador del modo accion almacenara las referencias a los metodos de actualizacion.</image:caption></image:image><lastmod>2020-02-16T18:46:32+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com/2018/10/18/generacion-procedural-i-calabozos-y-cavernas/</loc><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/2018-10-18-19_35_59-window.png</image:loc><image:title>2018-10-18 19_35_59-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/2018-10-18-19_35_35-window.png</image:loc><image:title>2018-10-18 19_35_35-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/2018-10-18-19_32_03-window.png</image:loc><image:title>2018-10-18 19_32_03-Window</image:title><image:caption>En este caso Initialize reemplazaria al metodo estandar de Unity, Start.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/2018-10-18-19_15_57-window.png</image:loc><image:title>2018-10-18 19_15_57-Window</image:title><image:caption>Por ultimo a nivel de nuestras secciones, vamos a aplicar esta regla llamando al nivel y consultando la validez de esta nueva seccion.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/2018-10-18-19_11_02-window.png</image:loc><image:title>2018-10-18 19_11_02-Window</image:title><image:caption>Nuestra nueva funcion para reforzar la regla de no-interseccion, la funcion recibe el collider de la nueva seccion y el collider de la seccion que lo creo, ya que este ultimo deberia ser ignorado de la validacion.

Tambien vemos la nueva funcion de registrar seccion, recibimos el collider de los limites de la seccion en vez del objeto en si.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/2018-10-16-21_25_37-window.png</image:loc><image:title>2018-10-16 21_25_37-Window</image:title><image:caption>Las clases de Chamber y Corridor seran nuestras secciones, al crearse, automaticamente se asignan como hijos de Level, se registran como secciones del nivel y generan sus anexos.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/2018-10-16-21_24_41-window.png</image:loc><image:title>2018-10-16 21_24_41-Window</image:title></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/screenshot-2018-10-17_13-59-32.png</image:loc><image:title>Screenshot 2018-10-17_13-59-32</image:title><image:caption>Nuestro nivel, un GameObject vacio con el comportamiento de Level y las prefabs cargadas.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/screenshot-2018-10-17_13-59-01.png</image:loc><image:title>Screenshot 2018-10-17_13-59-01</image:title><image:caption>Nuestra prefab de Camara basica con la salida especificada.</image:caption></image:image><image:image><image:loc>https://gamecodetips.com/wp-content/uploads/2018/10/screenshot-2018-10-17_13-57-59.png</image:loc><image:title>Screenshot 2018-10-17_13-57-59</image:title><image:caption>Ejemplo del calabozo generado y el problema que produce.</image:caption></image:image><lastmod>2020-05-15T22:16:24+00:00</lastmod><changefreq>monthly</changefreq></url><url><loc>https://gamecodetips.com</loc><changefreq>daily</changefreq><priority>1.0</priority><lastmod>2020-05-15T22:16:24+00:00</lastmod></url></urlset>
