[英]Rotate camera around object with mouse Unity
我想在游戲對象周圍移動相機,換句話說:當我按住鼠標中鍵並移動鼠標時,相機應該在此游戲對象周圍移動(就像地球圍繞太陽,但在y軸上),我有此代碼,但是它正在做奇怪的事情:
private void RotateCamera()
{
if (Input.GetKey(KeyCode.Mouse2))
{
yaw += _horizontalSpeed * Input.GetAxis("Mouse X"); //Horizontal speed and vertical are both equal 10, It's just how fast camera should move
pitch += _verticalSpeed * -Input.GetAxis("Mouse Y");
pitch = ClampAngle(pitch, -90, 90);
transform.position = new Vector3(pitch + target.position.x, yaw + target.position.y, 0);
}
}
我只需在要觀察的位置添加一個空對象,然后將照相機作為子對象添加到其中即可。
然后,您可以將旋轉應用於父對象,並且相機應繞其父對象旋轉並始終面向其父對象。
如果要更改目標,只需刪除父級子層次結構,將更改前父級的位置移動到新位置,將攝像機旋轉到該位置(使用transform.LookAt()
),然后再次設置父級子層次,例如你以前做過
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.