2013-04-16 62 views
2

我正在Unity3d這是一個亞軍遊戲寫一個應用程序。現在當我跳字符(在y方向移動),然後相機旋轉,因爲我使用使用主要相機transform.LookAt在一個目標,但沒有相機的旋轉

transform.LookAt(character) 

1.第一圖像當角色處於正常運行狀態

2,第二圖像是當人物跳躍

image with normal motion image when the character jumps

我想讓相機看起來沒有旋轉的字符

+0

你的意思是你想讓相機在角色跳躍時向上移動,或者當你跳躍時你想讓它不旋轉? –

+0

我希望它不會在它跳轉時旋轉它應該像它在第一個圖像中的樣子 – hariszaman

回答

1

有幾種解決方案。由於您直接通過transform.LookAt()操縱查看方向,因此您可以簡單地更改目標。

LookAt方法有一個過載,讓您指定目標的位置(Vector3而不是Transform)。

可以不是忽略目標的y軸座標,並選擇一個固定的Y值:

Vector3 lookAtPosition = character.transform.position; 
lookAtPosition.y = fixedYPosition; 
transform.LookAt(lookAtPosition); 

注意的是,上述解決方案僅如果字符留始終在同一平面上(ES沒有更多的地板,樓梯。等)。

+0

謝謝我試過這個,但是它並沒有阻止相機在旋轉的同時讓角色跳起來。注意在上面的兩個圖像相機高度保持不變,只是在字符跳轉時旋轉至LookAT字符 – hariszaman

+0

由於目標y正在改變值而旋轉。如果目標的y保持不變,則應該注意旋轉。如果目標的y與您在其他地方修改相機y相同。 – Heisenbug

+0

是的目標y變化了,我希望那個相機不應該在目標Y變化的時候旋轉。我只是希望相機應該從背後看一個角色,從某個高度離開它。基本上就像任何無盡的亞軍遊戲,例如廟宇跑步 – hariszaman