Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么循环崩溃而不打印?Unity3D_Unity3d_Unity5_Unityscript - Fatal编程技术网

为什么循环崩溃而不打印?Unity3D

为什么循环崩溃而不打印?Unity3D,unity3d,unity5,unityscript,Unity3d,Unity5,Unityscript,给定一个立方体空间,该函数搜索下一个大的空白空间,在那里放置一个标记,然后退出 但是,该函数甚至不打印循环开始之前存在的检查消息,因此我不知道如何调试它。检查从0,0,0开始,体素外的空格返回为true,因此它应该默认所有第一个循环并发送消息。unity.exe进程阻塞,我必须中止它 为什么不打印?还有什么问题吗?即使速度很慢,我也应该能够在循环中跟踪进度?为什么不呢 function findvoidable() //find void space in voxel volume {

给定一个立方体空间,该函数搜索下一个大的空白空间,在那里放置一个标记,然后退出

但是,该函数甚至不打印循环开始之前存在的检查消息,因此我不知道如何调试它。检查从0,0,0开始,体素外的空格返回为true,因此它应该默认所有第一个循环并发送消息。unity.exe进程阻塞,我必须中止它

为什么不打印?还有什么问题吗?即使速度很慢,我也应该能够在循环中跟踪进度?为什么不呢

function findvoidable() //find void space in voxel volume
{   
   var step = dist+1;
   print("start"); WaitForFixedUpdate(); //this doesnt print

    for ( var k : int = 0; k < mesher.PNGpaths.Length ; k+=step/2)          
        for ( var j = 0; j  < mesher.tex.height ; j+=step/2)
            for ( var i = 0; i < mesher.tex.width  ; i+=step/2){
                print("in schema");WaitForFixedUpdate();
                if (wst( i    , j    , k      )==false )
                if (wst( i+step,j     ,k      )==false )
                if (wst( i-step,j     ,k      )==false )
                if (wst( i     ,j+step,k      )==false )
                if (wst( i     ,j-step,k      )==false )
                if (wst( i     ,j     ,k+step )==false )
                if (wst( i     ,j     ,k-step )==false )
                {

                   var cnt=0;
                   for ( var x = i-step; x < i+step ; x+=1)     
                   for ( var y = j-step; y < j+step ; y+=1)
                   for ( var z = k-step; z < k+step ; z+=1)
                   { 
                       if ( wst( x , y , z ) == false )
                       cnt+=1;
                   }    
                   if ( cnt >= step*step*step-3 )
                   {
                        refCube.transform.position=Vector3(i,j,k);
                        break;break;break;break;break;break;
                   }
                   else
                   {
                       WaitForFixedUpdate();
                       refCube.transform.position=Vector3(i,j,k);
                   }

        }   
    }
}
函数findvoidable()//查找体素体积中的空白空间
{   
var阶跃=dist+1;
打印(“开始”);WaitForFixeUpdate();//这不打印
对于(变量k:int=0;k=步骤*步骤*步骤-3)
{
refCube.transform.position=Vector3(i,j,k);
断;断;断;断;断;断;断;
}
其他的
{
WaitForFixedUpdate();
refCube.transform.position=Vector3(i,j,k);
}
}   
}
}

WaitForFixedUpdate
是一个协同程序,不应该像普通方法那样运行

相反,请尝试“屈服”语句:

yield WaitForFixedUpdate();

更多信息:

谢谢,已经修复。