1

Unity(C#)の宇宙にモデルがあり、このモデルはスカイダイビングです。常に地面に面していますが、XとZが回転します。私が目指している効果は、モデルの中心を中心に回転するのではなく、回転するときに、モデルの左右に応じて、設定された距離だけポイントを中心に回転することです。私はすでに回転ロジックを持っていますが、回転によって右/左の位置が変わるため、「右にXピクセル」のワールド位置を決定する方法がありません。例えば:

私が始めたとき、左は-1,0です。右は+1,0x左を45度回転します。左はまだ-1,0です。しかし今、私の立場は(〜)-.7、.7です。そして、私の「左」はまだ-1,0を指しているので、「右は突然(〜)0,1.4を指しています。

では、モデルのVector3の位置、モデルのX、Z回転、およびオフセット(「左」と「右」)を指定して、どのように決定するのでしょうか。

これらのビジュアルタイプの場合、Just Cause 2はそれを正しく行いました(ただし、わかりにくい場合があります):http: //youtu.be/C6H3PPfx1KI?t=2m

みんな、ありがとう。

4

1 に答える 1

2

次のことをしたいようです。

  1. left = (-1, 0, 0)モデル空間で左/右座標を割り当てright = (1, 0, 0)ます。
  2. 回転点をモデル空間からワールド空間に変換します(例worldLeft = transform.TransformPoint(left))。
  3. ワールドスペースポイント()を中心に回転しますtransform.RotateAround(worldLeft, Vector3.up, speed * Time.deltaTime)
于 2012-11-15T19:40:38.387 に答える