Ionic.Zip.dll을 사용하여 zip 파일을 추출합니다.DotNetZIp 블로킹 통합
그것은 zip.ExtractAll(zipPath, ExtractExistingFileAction.OverwriteSilently);
잘 작동하지만 아카이브가 UI가 응답 (버튼 효과 등)를 추출된다. 이렇게 나는 coroutine 내부에서 이것을 사용하려고 시도했지만 아무런 결과도 얻지 못했다. 잘못된 생각이다.
이미이 방법으로 추출한 적이 있습니까?
편집 :
나는 때문에 유니티 제한의 스레드 기능의 완료를 추적하는 문제가 있었다. 마지막으로 부울와 코 루틴으로 일을 :
public bool extractionDone = false;
IEnumerator CheckLauncherExtracted() {
while(!extractionDone) yield return null;
Debug.Log("ExtractionDone done !");
OnLauncherFilesExtracted();
}
public void Extraction(){
StartCoroutine("CheckLauncherExtracted");
ThreadPool.QueueUserWorkItem(x => {
FileManager.ExtractZipToDirectory(zipPath, zipExtractPath);
extractionDone = true;
});
}
감사합니다. 추출 프로세스가 끝날 때 주 스레드에서 콜백을 트리거하여 프로세스를 계속 진행할 수 있습니까? – FLX
문제가 해결되었습니다. 감사합니다. – FLX
편집 내용을 확인했습니다. 당신은 그렇게 할 필요가 없습니다. 제가 제공 한 링크로 제 대답을 다시 읽으십시오. 'zip.ExtractAll' 후에, UnityThread.executeInUpdate (() => { yourCallBackFunction() }}) 할 수 있습니다. – Programmer