![](/img/trans.png)
[英]How can I get my camera to momentarily pause between different positions when using lerp in Unity3D?
[英]Why my camera block between two position using lerp?
我正在嘗試制作一個腳本,允許我的相機使用 keyArrows 和 lerp 進入 4 個不同的 position(前后左右)。
第一個動作很好,但是當我按下另一個 KeyArrow 時,我的相機移動了一點,卡在了第一個 position 和最后一個 position 之間。
有代碼:
void Update()
{
if (Input.GetKey(KeyCode.UpArrow)){
Uparr = true;
}
if (Input.GetKey(KeyCode.DownArrow)){
DownAarr= true;
}
if (Input.GetKey(KeyCode.RightArrow)){
Rightarr = true;
}
if (Input.GetKey(KeyCode.LeftArrow)){
Leftarr = true;
}
//boolean
if(Uparr){
cam.transform.LookAt(target);
cam.transform.position = Vector3.Lerp(StartPos.position,endPosition1.position,lerpSpeed*Time.deltaTime);
if (cam.transform.position == endPosition1.position){
Uparr = false;
}
}
if(DownAarr){
cam.transform.LookAt(target);
cam.transform.position = Vector3.Lerp(StartPos.position,endPosition2.position,lerpSpeed*Time.deltaTime);
if (cam.transform.position == endPosition2.position){
DownAarr = false;
}
}
if(Rightarr){
cam.transform.LookAt(target);
cam.transform.position = Vector3.Lerp(StartPos.position,endPosition3.position,lerpSpeed*Time.deltaTime);
if (cam.transform.position == endPosition3.position){
Rightarr = false;
}
}
if (Leftarr){
cam.transform.LookAt(target);
cam.transform.position = Vector3.Lerp(StartPos.position,endPosition4.position,lerpSpeed*Time.deltaTime);
if (cam.transform.position == endPosition4.position){
Leftarr = false;
}
}
你知道這可能是什么問題嗎?
設置新方向時,需要將其他方向變量設置為 false。 多個視圖同時處於活動狀態,因此它們正在戰斗。
if (Input.GetKey(KeyCode.UpArrow)){
Leftarr = false;
Downarr = false;
Rightarr = false;
Uparr = true;
}
為方向存儲一個變量可能更容易,但每個變量都有自己的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.