2017-03-11 4 views
0

3 차 공간이 주어진다면,이 함수는 다음의 큰 빈 공간을 찾고 거기에 마커를 놓은 다음 종료합니다.루프가 중단되어 인쇄되지 않는 이유는 무엇입니까? Unity3D

그러나이 함수는 루프를 시작하기 전에 존재하는 검사 메시지도 인쇄하지 않으므로 디버깅 방법을 모르겠습니다. 검사는 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); 
        } 

     } 
    } 
} 

답변

관련 문제