2つのz軸ポイント間でunityでレルプし、それに応じてコンポーネントをスケーリングする方法
-
25-10-2019 - |
質問
私はUnity 3と協力していますが、私の合計レベルサイズは、両側に壁がある四辺形の領域にすぎません。これには、プレーヤーを徐々に拡張するレベルの一部に制限するエンクロージャーを作成する2つの追加の壁があります。
私はこれらの2つの壁をZboundaryとXboundaryと呼びますが、これまでのところ、プロトタイプのために、いくつかのキーボードキーへの動きをマッピングしました。私がやりたいのは、一方が動くと、もう一方が長さが成長するので、常に垂直角度で結合されるので、たとえば、ZboundaryのZ座標とZ座標の間を直線的に補間することができることです。 Xboundaryは、彼らが常に参加して結合を作成するようにします。ゲームコンポーネントのサイズをプログラムで変更する方法がわからず、エラーが発生し続けるため、これも問題を引き起こします。
知っている Vector3.lerp
助けになるかもしれませんが、私は変革とさまざまなスケールにownれているので、助けに感謝します。
解決
私は今、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);
所属していません StackOverflow