AprendeUnity

Comienzo de la capacitación

Aprendiendo sobre Unity

Comienzo de la capacitación

Hola bienvenido/a, te doy las gracias por estar aquí, seguirnos en nuestro trabajo. Hoy vamos a ver en qué consiste esta capacitación, asumo que has venido aquí mediante el video; en caso contrario aquí te lo dejo:

Bien, vamos a explicar un poco más de la información que presenta el video. Esta es una capacitación en línea gratis para personas que desean aprender más sobre Unity. Este material no sirve para personas que no saben absolutamente nada de Unity Engine. Ya que lo básico lo he explicado en muchas ocasiones y hay mucho material de este tipo en Internet.

La idea de este material es aportar algo nuevo y distinto a la red; no tiene sentido hacer lo mismo que todos hacen. Si no sabes nada o sabes muy poco sobre Unity. Aquí te dejo un material que puedes visitar y aprender lo esencial que debes saber para poder tomar esta capacitación:

CONOCIMIENTOS PREVIOS:

Si al menos tienes un año de experiencia trabajando o estudiando Unity, entonces puedes realizar el estudio de este material. La capacitación se estructura en 2 partes como mencioné en el video; la primera parte consiste en un video corto en donde enseñaré la práctica del tema explicado; la segunda parte es un post en este mismo blog en donde explicaré extensamente la teoría de esta práctica.

¿A qué me refiero cuando digo extensamente? Además de lo obvio, los post serán bastante largos, por lo cual van a exigir más esfuerzo para aprender esto que un simple video de 20 minutos que puedas encontrar en Youtube. En caso de que desees aprender la práctica sin más puedes ver solo el video práctico y listo; pero lo más recomendable es que estudies todo el material. Si bien te llevará más tiempo hacerlo pero te prometo que te servirá mucho más que si solo ves el video.
Hoy en la era digital estamos acostumbrados a lo rápido, a lo instantáneo, el problema que trasladamos esa ansiedad por consumir información a nuestra capacitación laboral. Lo cual es un error muy grave, ya que no se puede aprender a programar en un lenguaje en un día por más que algunos lo prometan, tal vez puedas aprender algunas cosas básicas pero nada competente laboralmente.

En esta capacitación insertaremos descansos dentro de los post para que sean más fáciles de estudiar.

“Has un pequeño descanso.”

Unity

Si realmente deseas ser competente en tu mercado laboral entonces tienes que comprometerte y hacer la diferencia. Si bien un video es más rápido tanto para aprenderlo como para aplicarlo, pero si no lo aplicas seguido eso que aprendiste no durará mucho tiempo en tu memoria. ¿A qué se debe esto? Se debe al poco esfuerzo de concentración que exige ver un video explicativo. En cambio leer un material sobre un determinado tema exige mucha más concentración y esfuerzo de tu parte para poder entender el material. Esto quiere decir que hay muchas más probabilidades que esta información permanezca en tu memoria.

Existe un detalle más, toda la información puesta en videos está comprimida , resumida, acotada. Por el simple hecho que un video de más de una hora no lo ve casi nadie. A menos que sea una conferencia o algo muy importante. Entonces ¿Por qué estudiar información incompleta o resumida? Por falta de tiempo o porque no quieres esforzarte para realmente capacitarte en el tema. Si tu caso es el primero, si dejas un video a la mitad es más difícil continuar el hilo. A diferencia de dejar un documento o post que estabas leyendo y no lo pudiste terminar de leer. No es necesario que leas toda la teoría en un solo día. Tienes casi una semana entera para ir leyéndolo de a poco y así aprovechar toda la información.

Un detalle muy importante, no omitas ninguna información, para poder aprender algo primero debes desaprender, esto es porque las personas omiten temas que creen dominar y tal vez hay información importante que puede aportar a un mejor manejo del tema que aparentemente manejaban muy bien. Debes estudiar todo el material sin excepción, en caso contrario de que no sepas un tema que no está explicado en la teoría, investígalo, pregunta, estúdialo, no importa cuánto tiempo te tome aprenderlo lo importante para continuar este material es que no tengas ni la más mínima duda sobre ningún concepto. No me molestan las preguntas, puedes comentar el blog o enviarme un mensaje privado a través del formulario de contacto y les responderé lo más pronto que pueda.

Bien como  ya mencioné anteriormente los post serán  un poco largos, esta es una pequeña introducción a la capacitación, en el siguiente post comenzaremos a ver programación basada en la nueva API de Unity (en lo personal uso la beta de Unity 2019, aunque no es obligatorio tener esta versión para estudiar el material, con la 2018 es suficiente). Antes de irme quisiera decirte que además de código también explicaremos sobre mantenimiento de código, administración de sistemas de gran tamaño, sistemas multidisciplinarios, ya que cuando trabajamos solos o entre pocos no hay problema pero cuando son muchos los que trabajan en un mismo recurso las cosas comienzan a complicarse. Éstas prácticas no son meras técnicas que saco de algún libro y ya, sino es lo que uso en donde trabajo.

using UnityEngine;
public class Prueba : MonoBehaviour
{
void Start()
{
Debug.Log("<b>Esta capacitación va a ser genial</b>");
}
}

No quiero que te vayas hoy sin que te lleves al menos unos consejos sobre programación. No hagas lo más rápido sino lo que es correcto.

Un ejemplo simple de esto que acabo de decir sería las personas que por trabajar más rápido o esforzarse menos, no comentan su código. Esto es un error gravísimo, uno de los más graves que puede tener un programador que aspira a ser profesional. Tienes que evitar esta mala práctica a toda costa, no significa que tengas que comentar cada linea de código pero una buena práctica es comentar cada método y si el método es muy complejo tener algunos comentarios dentro de él.

Ahora veremos un ejemplo:

using UnityEngine;
public class Prueba : MonoBehaviour
{
public Transform objetivo;
void Start()
{
MostrarDistancia();
}
/// <summary>
/// Este método muestra la distancia que hay entre el personaje y el objetivo.
///</summary>
void MostrarDistancia()
{
float distancia = Vector3.Distance(transform.position, objetivo.position);
Debug.Log("<color=#ECFF00> Distancia: </color>"+"<b>"+distancia.ToString()+</b>);
}
}

“Al llamar a un método comentado nos muestra su comentario.”

Unity
Comentar código para Unity

Otra buena práctica que podemos tener es no meter los inputs en un simple if dentro de un Update. Y más cuando un mismo input es comprobado varias veces en un mismo script.

Vamos a ver el ejemplo:

using UnityEngine;
public class Prueba2 : MonoBehaviour
{
void Update()
{

//Este ejemplo es lo que NO deben hacer.
if (Input.GetKeyUp(KeyCode.Z)|| Input.GetKeyUp(KeyCode.V))
Debug.Log("Vete a dormir");
if (transform.position.y < 0)
{
transform.position = Vector3.zero;
if (Input.GetKeyUp(KeyCode.Z)|| Input.GetKeyUp(KeyCode.V))
gameObject.SetActive(false);
}
}
}

La utilización de un método que compruebe las entradas, además de ahorrar líneas de código, hace más fácil identificar y cambiar los inputs del mismo.

Ejemplo correcto:

using UnityEngine;
public class Prueba2 : MonoBehaviour
{
void Update()
{
if (ComprobarEntrada())//Este es el ejemplo de lo que SI deben hacer.
Debug.Log("Vete a dormir");
if (transform.position.y < 0)
{
transform.position = Vector3.zero;
if (ComprobarEntrada())
gameObject.SetActive(false);
}
}

/// <summary>
/// Este método comprueba el ingreso por teclado.
/// </summary>
/// <returns>devuelve verdadero si fue soltada la tecla z o v</returns>
bool ComprobarEntrada()
{
if (Input.GetKeyUp(KeyCode.Z) || Input.GetKeyUp(KeyCode.V))
return true;
else
return false;
}
}

Y bueno llegamos al último tip de esta introducción, en lo personal lo uso mucho, sirve mucho para mantener el código, sobre todo cuando vuelves después de un tiempo de no haber trabajando en el proyecto esto ayuda mucho. Se trata de comentar los métodos que son llamados por un Invoke, InvokeRepeating o Start/StopCoroutine.

Veamos un ejemplo:

using UnityEngine;
public class Prueba3 : MonoBehaviour
{
void Start()
{
Invoke("MostrarTiempo", 2);
}
/// <summary>
/// Muestra el tiempo actual.
/// Es llamado por un Invoke en el método Start.
/// </summary>
void MostrarTiempo()
{
Debug.Log(Time.time);
}
}

La práctica de este comentario es muy importante, por ejemplo que debas realizar una mejora o nueva versión de un proyecto anterior al que trabajas actualmente, no vas a recordar todo el código y si no está comentado de esta manera no podrás encontrar quien está llamando a ese método, ya que visual studio no encontrara referencias cuando coloques la herramienta de buscar referencias al método. Es por eso que debes comentar en donde está siendo llamado, recuerda esto no es para todos los métodos sino sólo para los que son llamados a través de un Invoke, InvokeRepeating o Start/StopCoroutine.

Bueno espero que les haya gustado este precalentamiento, nos vemos en el siguiente post y prepárate para ponerte en acción.

“Esfuérzate, capacítate y has la diferencia”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *