일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- file
- texture
- 게임
- Build
- iphone
- 아이튠즈
- builder
- sdk
- path
- Game
- swf
- Flash
- AS3
- ios
- flash builder
- class
- Ane
- Android
- 경로
- Mac
- 태그를 입력해 주세요.
- 3d
- XML
- smartfoxserver
- AIR
- unity
- 배열
- 단축키
- unity3D
- 영어
Archives
- Today
- Total
상상 너머 그 무언가...
Unity3D 로드된 AssetBundle 특정 위치에 다시 저장하기 ( FileStream ) 본문
개발관련(Development)/유니티3D(Unity3D)
Unity3D 로드된 AssetBundle 특정 위치에 다시 저장하기 ( FileStream )
Clack 2011. 11. 16. 11:40참조 : http://www.devkorea.co.kr/bbs/board.php?bo_table=m04_3&wr_id=9442#c_9459
WWW www = WWW.LoadFromCacheOrDownload( url, 1);
위 문장처럼 LoadFromCacheOrDownload를 사용하면 www의 bytes는 에셋번들 전용이라는 오류문구가 뜨는데
WWW www = new WWW(url);
위 문장처럼 WWW의 생성자의 매개변수로 url을 넣어 www를 생성하면 www의 bytes에 접근을 해도 오류문구가 뜨지 않는다.
LoadAssetBundle.cs
private string url = "Lerpz_Prefab.unity3d";
public IEnumerator LoadAsset()
{
WWW www = new WWW(url);
yield return www;
SaveAssetBundle( www.bytes, "Lerpz_Prefab.unidy3d" );
AssetBundle bundle = www.assetBundle;
GameObject go = bundle.Load("Lerpz", typeof(GameObject)) as GameObject;
Instantiate( go );
}
private void SaveAssetBundle( byte[] byteData, string fileName )
{
string savePath = Application.persistentDataPath;
FileStream fs = new FileStream( savePath + "/"+fileName , FileMode.Create);
fs.Seek(0, SeekOrigin.Begin);
fs.Write(byteData, 0, byteData.Length);
fs.Close();
}