본문 바로가기

개발

Unity camera rect변경 (screen size변경) 잔상 문제 해결

 

private void OnPreCull()
{
    GL.Clear(true, true, Color.black);  
}

 

이걸 추가하면 된다고 하는데

 

컬링 전에 호출되는 함수인데

 

애뮬레이터 실행에서는 잔상이 남았다.

 

void OnRenderObject()
{  
    if (changing == 1)
    {
        changing++;
        GL.Clear(true, true, Color.black);
    }else if (changing == 2)
    {
        changing++;
        mainCamera.rect = TargetRect;   
    }
    else if(changing==0)
    {  
        Rect rect = new Rect();
        rect.width = 1.0f;
        rect.height = 1.0f;
        rect.x = 0;
        rect.y = 0;
        mainCamera.rect = rect;
        GL.Clear(true, true, Color.black);
        changing++;
    }
}

 

 

해결하고자 해서 OnRenderObject함수에서 비율이 바뀌면 최대 사이즈로 늘린 뒤 GL.Clear로 지워주고 지운 후 원하는 비율로 바꿔줬다.

 

그러니 에뮬레이터에서도 잔상이 사라졌다

 

핸드폰 테스트에서는 onPrecull에 gl.clear 있어야됨