2012-11-15 92 views
1

我在Unity(C#)中有空間模型,並且此模型是跳傘運動。它總是面向地面,但X和Z旋轉。我所要做的效果是,當我旋轉時,而不是圍繞模型中心旋轉時,我會根據距離左右旋轉模型,直接向左或向右旋轉一定距離。我已經有了旋轉邏輯,但是我沒有的是如何確定「右側X個像素」的世界位置,因爲旋轉改變了右/左。例如:圍繞相對於模型位置和旋轉的點旋轉

當我開始時,左是-1,0;右是+1,0 x 我左轉45度左右。左仍然是-1,0。但是現在我的立場是(〜)-.7,.7。因爲我的「左」仍然指向-1,0,「右邊突然指向(〜)0,1.4

那麼,如何確定,給定模型的Vector3位置,模型的X,Z旋轉,和偏移,其中「向左」和「向右」是

對於那些視覺類型,正當防衛2這樣做是正確的(雖然它可能有時很難說): http://youtu.be/C6H3PPfx1KI?t=2m

謝謝大家。

回答

2

聽起來你只是想做以下事情:

  1. 指定模型空間中的左/右座標left = (-1, 0, 0),right = (1, 0, 0)
  2. 將旋轉點從模型空間轉換到世界空間(例如worldLeft = transform.TransformPoint(left))。
  3. 圍繞世界空間點旋轉(transform.RotateAround(worldLeft, Vector3.up, speed * Time.deltaTime))。
+0

它看起來像做了我所需要的。感謝您的快速響應!我不能確定它的工作原理,因爲我認爲相機系統設置非常糟糕,但數字表明我正在旋轉我所期望的位置。儘管如此,我仍然會給出一個不錯的選擇。再次感謝。 –

+0

就像一個供參考,它確實,工作,再次,謝謝! –