- Home /
Why do await Task.Delay(10); stops execution in unity Web-GL?
I am using await Task.Delay(10); in unity C# for delay .After build and run in Web-GL format .The execution stops at this line that has delay .When I remove the delay it executes. This is function where delay is to be used.
public async Task ObjSupport_PositionArrivedAsync(string Coordinate, double Value)
{
XAxis = GameObject.Find("X-Axis");
ZAxis = GameObject.Find("Z-Axis");
switch (Coordinate)
{
case "X-":
{
//code for case X-
}
break;
case "X+":
{
Value = Value - 100; //Total cube - x value
float izvalue = (float)Value;
izvalue = izvalue * 0.001f;
Debug.Log(izvalue);
Vector3 XAxisposition = XAxis.transform.localPosition; //get head position
float XAxiscurrentXpos = XAxisposition.x;
if (XAxiscurrentXpos <= -izvalue)
{
Debug.Log("XAxisSmaller");
while (XAxiscurrentXpos <= -izvalue)
{
await Task.Delay(1);
XAxiscurrentXpos += 0.001f;
Vector3 posx = new Vector3(XAxiscurrentXpos, XAxisposition.y, XAxisposition.z);
XAxis.transform.localPosition = posx;
}
}
else
{
if (XAxiscurrentXpos > -izvalue)
{
Debug.Log("XAxisGreater");
while (XAxiscurrentXpos >= -izvalue)
{
await Task.Delay(0);
XAxiscurrentXpos -= 0.001f;
Vector3 posX = new Vector3(XAxiscurrentXpos, XAxisposition.y, XAxisposition.z);
XAxis.transform.localPosition = posX;
}
}
}
}
break;
case "Z+":
{ //code for Z+ axis }
break;
}
}
And the following is code from where the above function is called.
public async void ExecuteFile()
{
string lGMCode;
/// aList is a ArrayList object and fill in
/// ValidateFile function.
for (int i = 0; i < aList.Count; i++)
{
lGMCode = aList[i].ToString();
if (lGMCode.StartsWith("X"))
{
XValue = Convert.ToDouble(lGMCode.Substring(1, lGMCode.Length - 1));
if (XValue<0)
{
await arr.ObjSupport_PositionArrivedAsync("X-", XValue);
}
else
{
await arr.ObjSupport_PositionArrivedAsync("X+", XValue );
}
if (lGMCode.StartsWith("Z"))
{ //code for Z
}}
Now this is all I am doing .I work fine in windows but when i build it in WEbGl format then it causes problem and stops execution on delay line. Now Kindly suggest me solution.
Answer by aqeel25 · Nov 09, 2021 at 12:49 PM
And I came to know that unity WEb GL do not support threading so what should be its alternate
Your answer
Follow this Question
Related Questions
Is it possible to get a smooth WebGL Progress Bar? 0 Answers
AudioClips not playing in WebGL when downloaded with AssetBundles 0 Answers
What are 'Uncaught abort(x)' errors on WebGL. 1 Answer
Is PlayerPrefs product specific on WebGL? 2 Answers
WEB GL optimization checkbox level disappeared from Build settings in 5.4? 1 Answer