我在试着理解你的问题…对不起,如果我不理解。
试试这样的:
bool active = false;
void Update(){
if(!active){
startCoroutine(coroutine());
}
}
IEnumerator coroutine()
{
active = true;
//your code
yield return new WaitForSeconds(2);
active = false;
}
编辑:
IEnumerator func()
{
distance = 1;
while(distance > 0.1f){
transform.position = Vector3.Slerp(transform.position, targetPos1, Time.deltaTime * 8f);
distance = transform.position - targetPos1;
if(distance<0){
distance *=-1;
}
}
distance = 1;
while(distance > 0.1f){
transform.position = Vector3.Slerp(transform.position, targetPos2, Time.deltaTime * 8f);
distance = transform.position - targetPos2;
if(distance<0){
distance *=-1;
}
}
我没有试过这个代码…只是让你理解这个想法。我现在没时间了,但那不是一个很好的代码…你可以做得更好