1

Unity 3を使用していますが、レベルの合計サイズは、両側に壁がある四角形の領域になります。この中には、徐々に拡張するレベルの一部にプレーヤーを制限するエンクロージャーを作成する2つの追加の壁があります。

私はこれらの2つの壁をZBoundaryとXBoundaryと呼んでいます。これまでのところ、プロトタイプでは、それらの動きをいくつかのキーボードキーにマッピングしています。私がやりたいのは、一方が移動すると、もう一方の長さが長くなるため、常に垂直な角度で結合されるため、たとえば、ZBoundaryのZ座標とのZ座標の間を線形補間できるようにすることです。 Xboundaryは、常に会って結合を作成するようにします。プログラムでGameComponentのサイズを変更する方法がわからないため、これも問題を引き起こし、エラーが発生し続けます。

Vector3.lerpは助けになるかもしれないことを知っていますが、私は変身とさまざまなスケールに溺れているので、助けていただければ幸いです。

4

1 に答える 1

0

XBoundaryにその位置を調整させて、常に90度でZBoundaryにロックするようになりました。

        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);
于 2011-03-16T11:21:38.640 に答える