我想制作一个脚本,让我的摄像机使用keyArrows和lerp移动到4个不同的位置(前、后、左、右)。
第一次移动效果很好,但是当我按下另一个关键箭头时,我的摄像机移动了一点,并且在第一个位置和最后一个位置之间被卡住了。
这就是代码。
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;
}
存储一个方向的变量可能会更容易,但要各司其职。