I am using a simple function without any update as given
public async void ObjSupport_PositionArrivedAsync(string Coordinate, double Value)
{
turret2carriage = GameObject.Find("Turret2Carriage");
float ivalue = (float)Value;
switch (Coordinate)
{
case "Z+":
{
Vector3 turret2position =
turret2carriage.transform.localPosition;
float turret2currentXpos = turret2position.x;
turret2position.x = Mathf.Clamp(turret2position.x + ivalue, -1200f, 500f);
while (turret2currentXpos <= turret2position.x)
{
await Task.Delay(100);
turret2currentXpos += 10f;
Vector3 posX =
new Vector3(turret2currentXpos, turret2position.y, turret2position.z);
turret2carriage.transform.localPosition = posX;
}
}
break;
case "Z-":
{
Vector3 turret2position = turret2carriage.transform.localPosition;
float turret2currentXpos = turret2position.x;
turret2position.x = Mathf.Clamp(turret2position.x - ivalue, -1200f, 500f);
while (turret2currentXpos >= turret2position.x)
{
await Task.Delay(100);
turret2currentXpos -= 10f;
Vector3 posX =
new Vector3(turret2currentXpos, turret2position.y, turret2position.z);
turret2carriage.transform.localPosition = posX;
}
}
break;
}
}
I am calling this function from another script . from where I pass Z+ or Z- with value.But during await Task.Delay(100);
it go back and starts executing another call. And continue them like that.
What I want is that during the await Task.Delay(100);
the execution should stay there ,It should not goback .