Как провести между 2 точками оси z в единстве и соответственно масштабировать компонент

StackOverflow https://stackoverflow.com/questions/5324209

Вопрос

Я работаю с Unity 3, и мой общий размер уровня будет всего лишь четырехсторонней областью со стеной с каждой стороны. Внутри этого будут две дополнительные стены, которые создают корпус, который ограничивает игрока до части уровня, который постепенно расширяется.

Я называю эти две стены Zboundary и Xboundary, и до сих пор для прототипа нанесла на карту их движение с некоторыми клавишами клавиш. Что я хочу сделать, когда один движется, другой растет в длину, поэтому они всегда соединяются под перпендикулярным углом, поэтому я хочу иметь возможность линейно интерполировать, например, Z-координата ZBoundary и Z-координат Xboundary, чтобы они всегда встречались и создавали присоединение. Это также создает проблему, потому что я не знаю, как изменить размер программного размера и продолжать получать ошибки.

Я знаю Vector3.lerp Может помочь, но я тону в трансформациях и в разных масштабах, и поэтому буду признателен за помощью.

Это было полезно?

Решение

Я на полпути к настоящему времени заставляю Xboundary отрегулировать свою позицию, чтобы всегда заблокировать Zboundary в 90Degrees

        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);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top