데이터를 직접 호출하는 방법이 존재하는데, 이방법은 아래 코드와 같이 직접 파일을 읽어오는 방식으로
코딩을 해볼 수 있다. 하지만 유니티의 경우 어셋번들이라는 개념이 존재한다.
FileStream fs; fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); if (fs != null) { BinaryReader reader = new BinaryReader(fs);어셋번들 방법을 적용하기 위해서는 왠지 Resource.Load()라는 함수를 통해서 리소스를 읽어와야 할듯 싶다.
TextAsset asset = Resources.Load("enemy_seq_bin") as TextAsset; Stream s = new MemoryStream(asset.bytes); BinaryReader br = new BinaryReader(s);
여기서 이미지 같은 바이너리는 파일의 확장자는 TextAsset.bytes를 통해 데이터를 읽어 올 수 있는 듯하다.
//Load texture from disk TextAsset bindata= Resources.Load("Texture") as TextAsset; Texture2D tex = new Texture2D(1,1); tex.LoadImage(bindata.bytes);
유니티를 사용할 때는 될 수 있으면 텍스트로 저장되고 읽혀져야 하는 듯싶다.
인터넷에서 어떤 유니티 사용자가 남긴 글중에는 바이너리 데이터를 유니티에서 읽어보니 오히려 속도가
더 느려졌다는 글도 있었다. 아마도 유니티 번들 데이터는 압호화된 압축데이터 일듯한데,
바이너리보다는 텍스트로 된 데이터 접근이 속도가 더 빠른가 보다.
넣어 저장해야 하는 번거로움이 생기었다.
참고 사이트 : http://answers.unity3d.com/questions/8187/how-can-i-read-binary-files-from-resources.html
http://docs.unity3d.com/Documentation/Components/class-TextAsset.html
'개발 Tip > Unity3D' 카테고리의 다른 글
Unity3D 4.0 으로 버전업 하면서 경고 메세지 중 하나! (0) | 2013.02.27 |
---|---|
Unity3D XML 읽고 쓰기 관련 정보 (0) | 2013.02.21 |
Unity3D에서 XML 읽고 쓰기 (0) | 2013.02.21 |
Unity3D 해상도 1:1 매칭을 위한 카메라 값 정하기 (0) | 2013.01.24 |
Windows에서 Android 개발 환경설정(Unity3D용) (5) | 2013.01.24 |