Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

249
Views
Cómo hacer Lerp entre 2 puntos del eje Z en Unity y escalar un componente en consecuencia

Estoy trabajando con Unity 3 y el tamaño total de mi nivel será solo un área de cuadrilátero con una pared a cada lado. Dentro de esto habrá dos paredes adicionales que crean un recinto que restringe al jugador a una parte del nivel que se expande gradualmente.

Llamo a estos dos muros ZBoundary y XBoundary, y hasta ahora para un prototipo he mapeado su movimiento a algunas teclas del teclado. Lo que quiero hacer es cuando uno se mueve, el otro crece en longitud para que siempre estén unidos en un ángulo perpendicular, por lo que quiero poder interpolar linealmente entre, por ejemplo, la coordenada Z de ZBoundary y la coordenada Z de Xboundary para que siempre se encuentren y creen una unión. Esto también crea un problema, porque no sé cómo cambiar el tamaño de un componente de juego mediante programación y sigo recibiendo errores.

Sé que Vector3.lerp puede ayudar, pero me estoy ahogando en transformaciones y diferentes escalas, por lo que agradecería la ayuda.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Estoy a mitad de camino ahora haciendo que el XBoundary ajuste su posición para bloquear siempre el ZBoundary a 90 grados

 ZBoundaryRef.transform.Translate((-1 * distancePerZMovement), 0, 0, Space.World); // using Space.World so transforms are using the global coordinate system! // what I've done here is say, move the XBoundary Z-CoOrd so that it aligns with the ZBoundary Z-CoOrd. // the origin of an object is at it's centre point so we need to take this in to account to ensure they join at the corners, not in a Tshape! float difference = (ZBoundaryRef.transform.position.x - XBoundaryRef.transform.position.x); float adjustment = difference + (ZBoundaryRef.transform.localScale.x/2); XBoundaryRef.transform.Translate(adjustment,0,0,Space.World);
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!