2016-03-02 90 views
0

我有一個軌道攝像機,圍繞一個物體擺動以展示所討論的物體,因爲物體相當大,很容易失去位置並希望回到起始位置,我想做這通過一個按鈕。將攝像機從當前位置移動到一個特定的位置,並保持一致?

我也希望這樣的過渡不會讓人感到震驚,它是當前位置和指定位置之間的平穩過渡。我意識到這是一個interp相關的問題,我不知道從哪裏開始。

我的基本轉換代碼到目前爲止是

public Camera MainCamera; 

public void UserClickedCameraResetButton() 
{ 
    MainCamera.transform.position = new Vector3(106, 68, 15); 
    MainCamera.transform.rotation = new Vector4(40, 145, 0); 
} 

像往常一樣,非常感謝

代碼將會解決我的問題更新。

public Camera MainCamera; 
public GameObject TargetPosition; 
public int speed = 2; 
bool camera_move_enabled = false; 

void Update() 
{ 

    if (camera_move_enabled) 
    { 
     MainCamera.transform.position = Vector3.Lerp(transform.position, TargetPosition.transform.position, speed * Time.deltaTime); 
     MainCamera.transform.rotation = Quaternion.Lerp(transform.rotation, TargetPosition.transform.rotation, speed * Time.deltaTime); 
    } 

} 

public void UserClickedCameraResetButton() 
{ 
    TargetPosition.transform.position = new Vector3(-106.2617f, 68.81419f, 14.92558f); 
    TargetPosition.transform.rotation = Quaternion.Euler(39.7415f, 145.0724f, 0); 
    camera_move_enabled = true; 
} 

回答

2

試試這個,設置你的變換位置和旋轉到目標位置的對象。由於轉換必須在多個框架上完成,因此您必須將其置於更新方法之下。您可以設置一個變量來啓用或禁用相機移動。只需更改目標位置並啓用相機移動即可移動相機。

public GameObject Targetposition; 
public bool camera_move_enabled; 

void Update() { 

    if(camera_move_enabled){ 
     Maincamera.transform.position = Vector3.Lerp (transform.position, Targetposition.transform.position, speed * Time.deltaTime); 
     Maincamera.transform.rotation = Quaternion.Lerp (transform.rotation, Targetposition.transform.rotation, speed * Time.deltaTime); 
    } 

} 

public void UserClickedCameraResetButton() 
{ 
    Targetposition.transform.position = new Vector3(106, 68, 15); 
    Targetposition.transform.rotation = new Vector4(40, 145, 0); 
    camera_move_enabled = true; 
} 

在轉換後禁用camera_move_enabled。將速度值(浮點)更改爲更快/更慢的轉換。

我也是新來團結,這可能不是最好的解決辦法:)

+0

您可以添加一個布爾檢查camera_move_enable'的'狀態,我需要檢查什麼'Targetposition'是所有關於爲這是目前拋出一些錯誤。 –

+0

'Targetposition'是一個gameobject。製作另一臺相機並將其設置爲目標位置,以便您可以看到最終相機視圖的外觀和調整方式。 – Stalker

+0

得到它的工作,不得不將'vector4'更改爲'quaternion.euler'將更新OP與工作代碼。現在唯一的問題是布爾解決一個點擊式解決方案,此時你必須點擊並按住,它會將凸輪拉回到位置之前。 –

相關問題