일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 아이튠즈
- builder
- 단축키
- Android
- unity
- Flash
- flash builder
- 경로
- path
- class
- 3d
- 영어
- Mac
- AS3
- smartfoxserver
- Game
- file
- texture
- Ane
- 게임
- Build
- unity3D
- sdk
- ios
- XML
- AIR
- 배열
- iphone
- 태그를 입력해 주세요.
- swf
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();
}