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.
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);