我正在制作一個游戲,我希望相機有限制地移動,我已經有了腳本,但如果可能的話,我真的希望相機更流暢。
謝謝!
public class LimitedCamera : MonoBehaviour
{
public float LimitAngleX = 10f;
public float LimitAngleY = 10f;
private float AngleX;
private float AngleY;
public void Update()
{
var angles = transform.localEulerAngles;
var xAxis = Input.GetAxis("Mouse X");
var yAxis = Input.GetAxis("Mouse Y");
AngleX = Mathf.Clamp(AngleX - yAxis, -LimitAngleX, LimitAngleY);
AngleY = Mathf.Clamp(AngleY xAxis, -LimitAngleY, LimitAngleY);
angles.x = AngleX;
angles.y = AngleY;
transform.localRotation = Quaternion.Euler(angles);
transform.localEulerAngles = angles;
}
}
uj5u.com熱心網友回復:
Time.deltaTime解決方案是乘以InputAxis平滑相機。這種方法抑制了游戲中的幀波動,也使它在較弱的系統上更平滑。
var xAxis = Input.GetAxisRaw("Mouse X") * Time.unscaledDeltaTime * sensitivity;
var yAxis = Input.GetAxisRaw("Mouse Y") * Time.unscaledDeltaTime * sensitivity;
您還可以通過更改sensitivity變數來控制速度。
public float sensitivity = 10f;
uj5u.com熱心網友回復:
在你的LimitedCamera課堂上:
public static float MouseSensitivityX = 0.1f;
public static float MouseSensitivityY = 0.1f;
在你的Update()方法中:
var xAxis = Input.GetAxis("Mouse X") * MouseSensitivityX;
var yAxis = Input.GetAxis("Mouse Y") * MouseSensitivityY;
您還可以使用PlayerPrefs在設定選單中更改靈敏度。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/476522.html
