Тёмный

LERP en Unity | Español 

Indierama
Подписаться 14 тыс.
Просмотров 10 тыс.
50% 1

La interpolación lineal o LERP (su implementación en Unity) es una característica super utilizada para crear movimiento y animaciones o transiciones entre 2 estados. En este video voy a mostrar como funciona LERP y cuál es la mejor forma de utilizarla, aplicando además curvas de animación y distintas variantes para transicionar posiciones, rotaciones y colores.
Instagram | / indierama.gamedev
Guía para principiantes en Unity:
• Tu primer JUEGO en UNI...
Unity - ATRIBUTOS más utilizados! 🔎
• Unity - ATRIBUTOS más ...
SCRIPTABLE OBJECTS en Unity | español
• SCRIPTABLE OBJECTS en ...
TRANSICIONES de ESCENA en Unity!
• TRANSICIONES de ESCENA...

Опубликовано:

 

1 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 78   
@Indierama
@Indierama 8 месяцев назад
Curso de Unity y C# para PRINCIPIANTES (Septiembre 2024): www.udemy.com/course/unity-y-c-fundamental-desarrollo-de-videojuegos-2d/?couponCode=INDIERAMA2024N Para apoyar al canal, asegurate de comprar con el link, sino Udemy se queda con la mayor parte de la venta.
@_GLStudio
@_GLStudio 2 года назад
3:14 Woow cómo hiciste q escriba en las 3 líneas al tiempo??? Jajajajaj
@Indierama
@Indierama 2 года назад
Jajaja. Que trucaso, no? En Visual Studio es manteniendo ctrl + alt y clickeando en los distintos lugares que queres escribir
@_GLStudio
@_GLStudio 2 года назад
aaaaaa vale vale muchas gracias, y gracias por responder eres un crack
@lucho0957
@lucho0957 Год назад
Gracias vato me encanta tu contenido, me cae que aprendo mas que en toda la universidad XD
@Indierama
@Indierama Год назад
Jajaja aguante RU-vid y el contenido de calidad!! Muchísimas gracias!
@conradojosepresti9964
@conradojosepresti9964 2 года назад
hola, soy nuevo programando y la verdad quiero saber como escalar un objeto en el tiempo y acomodar tu posicion a la vez, cualquier ayuda me sirve tomo anotaciones.
@Indierama
@Indierama 2 года назад
Hola! Deberías hacer una nueva variante de la corrutina para el escalado del objeto. Aca escribí el código, te lo dejo para que lo analices y por si a alguien más le sirve: IEnumerator LerpScale(float start, float target, float lerpDuration) { float timeElapsed = 0f; while (timeElapsed < lerpDuration) { transform.localScale = Vector3.one * Mathf.Lerp(start, target, curve.Evaluate(timeElapsed / lerpDuration)); timeElapsed += Time.deltaTime; yield return null; } transform.localScale = Vector3.one * target; } Si, por ejemplo, quisieras que tu objeto escale al doble de su tamaño deberías llamarla con los siguientes parámetros: StartCoroutine(LerpScale(1f, 2f, lerpDuration)); Para que a su vez se mueva de posición, deberías llamar también a LerpPosition como hice en el video. Saludos
@heribertosalais4678
@heribertosalais4678 Год назад
Tengo una duda , necesito hacer un Draw ray magenta que siga a uno verde, lo hice , pero necesito hacerlo mas lento, ya probé con varios valores en la función lerp , pero el DrawRay magenta alcanza al DrawRay verde casi de inmediato. ¿Alguien Sabe como hacerlo mas lento? toWallTransform = transform.forward * 10f; newWallDirection = Vector3.Lerp(initPos, toWallTransform, 0.05f * Time.deltaTime); Debug.DrawRay(transform.position, toWallTransform , Color.green); Debug.DrawRay(transform.position, newWallDirection , Color.magenta); initPos = toWallTransform;
@albertolf
@albertolf Год назад
Increíble trabajo, bien explicado y sin irte por las ramas. Grandísimo!
@Indierama
@Indierama Год назад
Muchas gracias Alberto! 🙌🙌
@blackraven3181
@blackraven3181 4 месяца назад
I honestly don't know why this video was recommended to me. I don't even speak Spanish but you're explaining this very well haha.
@Indierama
@Indierama 4 месяца назад
😂😂 Thank you so much!
@MisterAlexOficial
@MisterAlexOficial Год назад
7:44
@pperimeri9575
@pperimeri9575 2 года назад
No consigo hacer la rotación de vuelta como con la posicion. ¿Tengo que pasar el Vector3 targetRotation a Quaternion como en la corrutina LerpRotation? Si pongo Quaternion.Euler(targetRotation)=startRotation; me dice que "la parte izquierda de una asignacion debe ser una variable, propiedad o indizador.
@Indierama
@Indierama 2 года назад
Hola! Efectivamente no podés hacer una asignación como esa. Del lado izquierdo va siempre la variable. Recordá que Quaternion.Euler(targetRotation) es un valor (un cierto quaternion). No podés asignar una variable a un valor. Es como si escribieras algo como: 1 = miVariable; Te dejo el código de como hay que hacerlo para que lo analices: private void SwitchTargetRotation() { targetRotation = startRotation.eulerAngles; startRotation = transform.rotation; } // Deberías hacer su respectivo llamado Si recién estás empezando con Unity y C#, te dejo una pequeña guía para principiantes que tengo, quizás pueda ayudarte: ru-vid.com/group/PLVF6T_Yk3AkZfdulmQRutk0RgXOXCd4VQ Saludos y contame luego como te fue!
@pperimeri9575
@pperimeri9575 2 года назад
@@Indierama ¡Buenas! Llevo pocos meses y soy algo inútil en esto, no sé hasta dónde llegaré. Hay tantas cosas que aún no sé, tantas conversiones y todo con sus reglas que no se hace fácil. Ya va perfecto. No sabía lo de .eulerAngles, ¿se supone que compatibiliza el Quaternion startRotation con el Vector3 targetRotation, cuál conversión?(al poner el puntero encima en el Visual Studio aparece "Vector3 Quaternion.eulerAngles"). Aún así me informaré sobre eulerAngles, ahora estoy intentando informarme bien con los Lerps. Muchas gracias por tus videos/tutoriales :)
@Indierama
@Indierama 2 года назад
@@pperimeri9575 Esto puede ser duro si nunca antes habías programado. Pero con el tiempo, de a poco, se va a transformar en tu segundo lenguaje y vas a comprender todo con mayor claridad. Un poco de paciencia e intentar practicar siempre que puedas💪. El .eulerAngles vendría a convertir el quaternion a ángulos de Euler (los ángulos de siempre, que van de 0 a 360 grados). Justamente, estos ángulos están representados por un Vector3, osea un ángulo para cada uno de los ejes (x, y y z). Al ser del tipo Vector3 ahora si te los dejaría asignar a targetRotation.
@pperimeri9575
@pperimeri9575 2 года назад
@@Indierama Muchísimas gracias por tus respuestas. Hoy he aprendido algo nuevo y valioso gracias a tí :D
@alfredomarin804
@alfredomarin804 2 месяца назад
Exelente video 10/10 nuevo sub, mucho éxito para ti y tu canal, saludos!
@Indierama
@Indierama 2 месяца назад
Muchísimas gracias Alfredo!
@marcodalis105
@marcodalis105 Год назад
Yose que es flojo de mi parte, pero deberias de tener un repositorio con los codigos de tus Tutoriales! .. sabes cuantas veces he usado este codigo!? xD .. siempre lo hago solo para aprenderlo mejor, pero siempre me pasa algo y tengo que volver a ver tu video para observar que fue lo que hice mal. Y tu diras, pero es que si ya lo has hecho varias veces porque no ves tus codigos anteriores? Porque siempre termino perdiendo en donde fue que lo hice xD.. haga varias juegos y siempre uso este codigo para pasar valores de un punto a otro . Y escribiendote me acabo de acrodar donde lo use.
@Indierama
@Indierama Год назад
Hola Marco! Siempre me digo lo mismo, que voy a crear un repo para cada video que subo, pero ahora que hay varios ya me dio un poco de flojera jaja. En algún momento lo voy a hacer! O al menos con los nuevos que voy subiendo. Gracias por la sugerencia!
@SAN-mi8tv
@SAN-mi8tv 2 года назад
Hola, buenas, muy buen video
@Brunales58
@Brunales58 2 года назад
Recién estoy empezando en unity y vi varias veces el uso de las corrutinas, estaría bueno que dedicases un video a explicarlas desde 0. Se que hay varios videos que pueda encontrar en youtube pero la verdad que ninguno me dejó claro el concepto. En cambio de los varios videos que vi tuyos, entendí todo y no me perdí en ninguna parte y creo que me podrías ayudar a mi como a muchas personas más. Un saludo.
@Indierama
@Indierama 2 года назад
Hola, ya varias veces me plantee hacer un video sobre corrutinas (si bien ahora existe una mejor opción: async /await de la cual seguramente también haga otro), así que cuando lo haga, voy a intentar que sea lo mas comprensible posible 😎. Saludos y que sigas aprendiendo mucho más!
@Brunales58
@Brunales58 2 года назад
@@Indierama dale, activo la campanita😉
@edgarmundov
@edgarmundov 3 месяца назад
Mil gracias... lo pude aplicar para Unigine (casi no hay tutoriales para Unigine).
@Indierama
@Indierama 3 месяца назад
Muchas gracias Edgar! Nunca he usado ese motor pero me alegra que te haya servido!
@jhonygamer1969
@jhonygamer1969 8 месяцев назад
Lo que no entiendo es por qué usas corrutinas para hacer eso. ¿No se puede hacer lo mismo dentro del Update y nada más?
@Indierama
@Indierama 8 месяцев назад
Hay varias razones: esta forma de hacerlo es más fácil de manejar y más legible, pero lo más importante es que las corrutinas se detienen por si solas al terminar el Lerp. Si usaras Update te quedarías chequeando infinitamente una condición una vez que hayas terminado de hacer el Lerp, lo cual obviamente no es necesario y queda algo confuso.
@JonestarkXYZ
@JonestarkXYZ 3 месяца назад
Alguien sabe cómo hacer interpolación en godot?
@Indierama
@Indierama 3 месяца назад
Hola! Funciona casi idéntico: docs.godotengine.org/en/stable/tutorials/math/interpolation.html Fijate que tenes unos ejemplos muy simples para guiarte. Otra forma de hacer estas cosas es usando tweens. Ya subiré algo al canal.
@ByBase
@ByBase Год назад
Cabeza, son re utiles tus tutoriales. Creo que un tema importante de tocar serian los Casts, ya sea collider cast o raycast. Gracias!
@Indierama
@Indierama Год назад
Muchas gracias! Uno de Raycasts hace bastante que tengo ganas de hacer, probablemente sea uno de los siguientes!
@felipeagudelo76
@felipeagudelo76 Год назад
Excelente video parcero muchas gracias 👍
@Indierama
@Indierama Год назад
Muchísimas gracias Felipe!
@arielgimenez_95
@arielgimenez_95 2 года назад
Espectacular video, gracias!
@Indierama
@Indierama 2 года назад
Muchas gracias Ariel! 🙌🙌
@liamacosta2879
@liamacosta2879 10 месяцев назад
Hola, tengo una duda sobre porque se divide TimeElapsed por lerpDuration? probe no dividir la variable y el único cambio que note es que la plataforma recorre la distancia en menos tiempo del que en teoría debería recorrer y llegar a la nueva posición, por que sucede esto? y por que se hace la división de TimeElapsed por lerpDuration?
@Indierama
@Indierama 10 месяцев назад
Hola, se divide por lerpDuration porque el tercer parámetro va de 0 a 1, donde 0 es indica el valor inicial (primer parámetro) y 1 el valor final (segundo parámetro). Si dejas como tercer parámetro solo timeElapsed, entonces tu transicion va a durar 1 segundo (recordá que va de 0 a 1). A partir de que timeElapsed supera 1, te vas a quedar en el valor final (segundo parámetro). La división es justamente para que la transición dure el tiempo dado por lerpDuration, porque cuando timeElapsed llega a ser lerpDuration la división vale 1.
@liamacosta2879
@liamacosta2879 10 месяцев назад
Muchas gracias@@Indierama
@alfonsoalcaide2585
@alfonsoalcaide2585 Год назад
Hola que tal? Veo que aplica un suavizado en el movimiento. Cuando llega al destino, suaviza su movimiento. ¿Como se podría hacer para que no fuera suave, que fuera directo? Lo necesito para la posición de una bala, que haga la interpolación entre el origen y el blanco al que debe de dañar. Necesito que la bala siempre de en el blanco, por eso lo de usar el sistema lerp, entre punto de origen de la bala y el destino(el blanco). El blanco siempre está en movimiento. Saludos!
@Indierama
@Indierama Год назад
Hola Alfonso, para no hacer el suavizado simplemente hay que hacer el Lerp normal sin la curva de animación. Si tu target está en constante movimiento también podrías investigar el método MoveTowards.
@alfonsoalcaide2585
@alfonsoalcaide2585 Год назад
@@Indierama Muchas gracias. Creo que es justo lo que estaba buscando. Es un juego tipo tower defense.
@Indierama
@Indierama Год назад
@@alfonsoalcaide2585 algo que me olvide de decir es que también lo podes hacer con una resta de vectores. Cualquier cosa en el canal hay un video sobre vectores.
@chichipio2
@chichipio2 Год назад
Gracias! Re bien explicado!
@Indierama
@Indierama Год назад
Muchas gracias! 🙌🙌
@Chinz3r0
@Chinz3r0 2 года назад
Muy bueno, muchisimas graciass
@Indierama
@Indierama 2 года назад
Gracias a vos por el apoyo!
@aggemcore
@aggemcore Год назад
Gracias por la info! Saludos
@Indierama
@Indierama Год назад
🙌🙌
@gameroche
@gameroche Год назад
🕹 gracias full video
@Indierama
@Indierama Год назад
😁😁
@alexito897
@alexito897 2 года назад
tus videos son una maravilla
@Indierama
@Indierama 2 года назад
Muchísimas gracias Alexander! 🙌🙌
@tom_romano3256
@tom_romano3256 2 года назад
sos re piola te quiero
@Indierama
@Indierama 2 года назад
💖
@marcosmendoza2819
@marcosmendoza2819 2 года назад
Muy buenos videos te banco mucho y agradezco por el contenido, simplmente gracias
@Indierama
@Indierama 2 года назад
Muchísimas gracias por el apoyo Marcos!
@Vector2
@Vector2 2 года назад
ta bueno, bien explicado y me ha ayudado mucho. gracias!
@Indierama
@Indierama 2 года назад
💪💪💪
@framex_media
@framex_media Год назад
Excelente tutorial, directo al punto con total claridad, sos un gran docente, muchas gracias
@Indierama
@Indierama Год назад
Muchísimas gracias 🙂🙂
@gaultierhardrick9455
@gaultierhardrick9455 2 года назад
Muchas gracias, me sirvio muchisimo Excelente explicacion y excelente contenido
@Indierama
@Indierama 2 года назад
Muchas gracias! 🙌🙌
@ferminverdolini2559
@ferminverdolini2559 2 года назад
Muy buen contenido y muy bien explicado te banco un montón. vendría bien un video de corrutinas
@Indierama
@Indierama 2 года назад
Muchas gracias Fermín!, tema que me piden mucho y aun no he subido video 😅. Espero pronto poder hacer un video del tema.
@eduardol6201
@eduardol6201 2 года назад
Buen contenido y buena explicación. Saludos!
@Indierama
@Indierama 2 года назад
Muchas gracias Eduardo! Saludos!
@Sebastian-kf6sp
@Sebastian-kf6sp 2 года назад
se agradece el contenido y muy buena explicación!
@Indierama
@Indierama 2 года назад
Gracias Sebastián por estar siempre atento al contenido! 🙌🙌
@NelsonSKA
@NelsonSKA 2 года назад
Excelente material!!!
@Indierama
@Indierama 2 года назад
Gracias Nelson! 💪💪
@inadaptadoart9170
@inadaptadoart9170 2 года назад
Estos tutoriales valen oro
@Indierama
@Indierama 2 года назад
Gracias!💪💪
@javiertrejotinajero9247
@javiertrejotinajero9247 Год назад
Muy bueno, no entiendo del todo porqué es mejor (en cuanto a funcionamiento) usarlo como Corrutina que en el Update, me parece mejor organizado y eso ya es ventaja pero de manera particular aún no lo entiendo. Tampoco logro hacer un Lerp para el Alpha de un Sprite, tengo un código que en teoría debería funcionar y si hago un Debug del valor del alpha, todo va muy bien y dura lo que debe pero ese valor no sirve para actualizar el Alpha del Sprite pues no cambia o lo hace tomando solo el valor máximo entroducido en el Lerp. Ojalá pudieras hacer un video.
@javiertrejotinajero9247
@javiertrejotinajero9247 Год назад
Por cierto: para cambiar el Alpha lo hago guardando en una variable de tipo Color, el color del sprite, despues a esa variable le cambio el valor del alpha utilizando el punto y la letra a (color.a = 15 por ejemplo...) y ya despues ese color lo asigno de nuevo al sprite devolviendolo con un nuevo valor de su Alpha. No se como acceder directamente al alpha del Sprite o si se pueda. Creo que eso lo arreglaría todo.
Далее
The right way to Lerp in Unity
9:38
Просмотров 20 тыс.
ОБЗОР НА ШТАНЫ от БЕЗДNA
00:59
Просмотров 391 тыс.
▼ КАПИТАН НАШЁЛ НЕФТЬ В 🍑
33:40
Просмотров 473 тыс.
[Unity] The Essence of Lerp
12:27
Просмотров 22 тыс.
Retro FPS in Unity #1 - First Person movement
23:15
Просмотров 101 тыс.
ENUMS de C# en Unity
7:48
Просмотров 5 тыс.
Everything Starts with a Note-taking System
21:23
Просмотров 253 тыс.
CORRUTINAS en Unity ⏳
19:33
Просмотров 5 тыс.
How to Use Lerp (Unity Tutorial)
6:53
Просмотров 79 тыс.
Lerping in Unity - You HAVE to know this!!
10:54
Просмотров 88 тыс.