1

Unity 3Dを使ってシンプルな2D横スクロールゲームを作っています。2D と言うときは、2D で表示されるという意味です。すべての背景アセットは 2D ですが、メイン キャラクターは 3D になります。欲しいのは凹凸のある床面。背景に表示されるものだけで実際の床は存在しないため、技術的には床の衝突を偽造したいと考えています。

私はiTweenを調べましたが、これは私がやりたいことができるようです。私のアイデアは、iTween を使用して、背景の床と一致する線を作成することでした。次に、メインキャラクターの x 位置を行の x 位置と一致させ、この時点で行の y 位置を取得して、文字の y 位置を設定します。

私の唯一の問題は、線の座標を取得できないように見えることです。iTween には PointOnPath() というメソッドがありますが、座標を取得するには、自分のキャラクターが線に沿ってどのくらい離れているかをパーセンテージで知る必要があります。私のキャラクターが実際に線に従っていないので、これは私が知らないことです.

iTween を使用するかどうかに関係なく、これを達成する方法について誰かがアイデアを持っている場合は、大歓迎です。

前もって感謝します、

ジョン

4

1 に答える 1

0

Unity3Dの衝突を使用できます。BoxCollidersを使用すると、さまざまなサイズのBoxColliderを並べて配置することで、平らな地面や、場合によっては説明した不均一な床面をシミュレートできます。

湾曲した衝突サーフェスをシミュレートする場合は、 MeshColliderの使用を検討し、レベルの形状に適合する低ポリゴン数の基本的な3Dメッシュ(Blender、3DSMax、Mayaなどから)をインポートします。

これを示す非常に簡単な方法は、いくつかのキューブをドラッグして(GameObject-> Create Other-> Cube)、それを選択し、右クリック-> MeshFilterとMeshRendererの両方でコンポーネントを削除して、BoxColliderを残すことです。移動/回転/拡大縮小できます。

私がこれを引き起こすことを容易に予見できる唯一の問題は、階段/階段または小さな高さの違いがあることです。Unityのサンプルキャラクターは、プレイヤーの衝突をカプセルの形にすることでこれを処理します。カプセルの形状は、特定の高さで階段のサイズに達するとカプセルを押し上げます。別の方法としては、コードで階段の衝突処理を修正するか、ステップ間のギャップに角度付き/傾斜した衝突型加速器を追加することができます。

于 2012-08-07T06:01:32.030 に答える