유니티로 어플 개발을 하다가
통 이미지를 로딩해야 할일이 생겼습니다.
보통 이런 이미지나 기타 파일들은
유니티 내부에 있는 클래스인
WWW
에 "file://" 을 붙여서
로딩 하는데..
이렇게 통 이미지를 로딩 했더니
로딩시간이 너무 오래 걸립니다.
그래서 로딩시간을 좀 줄이고
싶어서 찾아보던 중에
WWW 를 사용하지 않고
그냥 이미지 자체를
Byte Array
로 읽어오는 방법이
더 빠르다는걸 알게 되었죠.
간단히 테스트를 통해서
각각의 로딩시간을 측정해보면..
우선 WWW 를 사용한
이미지 로딩 입니다.
그다음 Byte Array 를
사용한 이미지 로딩 입니다.
이렇게 하고 돌려서
시간을 체크해 보면
각각의 이미지 로딩에 걸린
시간을 체크 할 수 있습니다.
테스트로 원본 이미지 ( 640x640 ) 를
아이패드2 에 돌려 보았습니다.
먼저 WWW 로 로딩한 경우.
640x640 이미지 한장을
로딩할때 359 밀리세컨이 걸리네요.
그다음 Byte Array 로 로딩한 경우
이번에는 99 밀리세컨이
걸립니다.
그냥 대충 보기에도 엄청나게
차이가 나는걸 볼 수 있습니다.
( 대략 3-4배 정도 차이나네요. )
정확한 이유는 잘 모르겠지만..
아무래도 WWW 가 단순 로컬파일을
로딩할때도 네트워크 관련 기능을
사용하는 것 같네요.
이미지의 크기가 작거나
갯수가 적으면 WWW 를 쓰는게
더 좋겠지만..
이번 상황처럼 큰 이미지들을
동적으로 빠르게 로딩해야 할
경우에는 그냥 Byte Array 로
읽어와서 로딩하는 편이 훨씬
좋은 것 같습니다.
이상 Unity3D 에서 이미지 로딩
시간을 단축하는 방법 이었습니다.
'Programming > Unity3D' 카테고리의 다른 글
[Unity3D] Mac 에서 유니티 코드를 모노(Mono) 대신 VSC(Visual Studio Code) 를 사용하는 방법 (2) | 2015.10.22 |
---|---|
[Unity3D] Unity4 프로젝트를 Unity5 로 마이그레이션 하는 방법 (과정) (0) | 2015.10.12 |
[Unity3D] Texture2D 보간 기능을 이용해 리사이징 (Resize) 하는 방법 (0) | 2015.07.16 |
[Unity3D] NGUI UISprite 를 Unity3D 의 Texture2D 로 변환하는 방법 (0) | 2015.07.02 |
[Unity3D] NGUI 로 웹 (Web) 이미지 텍스처 이미지 로딩 하는 방법 (0) | 2015.06.19 |