일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- WebGL
- android app bundle
- 커스텀쉐이더
- AR
- Specular Highlights
- web3D
- unityhub
- 유니티
- TextMeshPro 한글
- TextMeshPro
- muilt controller
- Environment Reflections
- 구글플레이스토어
- Unity VisualStudio
- untiy
- Android
- apk
- DS4
- 역직렬화 오류
- Depth camera
- kinect v2
- AssetBundle
- 반응형레이아웃
- Unity
- RenderStreaming
- Rewired
- 랜더스트리밍
- 에셋번들
- webview
- 듀얼쇼크4
- Today
- Total
기억저장고
Unity AssetBundle 생성/불러오기 본문
Unity에서 AssetBundle을 사용하는데 많이 어려움을 겪었다.
나는 FBX를 AssetBundle로 저장해서 서버에 올린다음에 WebGL로 불러오는 작업을 했었다.
정말 어려웠다... 다 어려운방법들을 알려줘서.. 이해를 잘 못했다. (지금도 못함)
*WebGL 플레이중 FBX 받는법
1. FBX를 AssetBundle로 묶는다.
2. AssetBundle을 서버에 올린다.
3. WebGL 플레이 중 AssetBundle을 다운받는다
4. 받은 AssetBundle안에 있는 FBX를 꺼낸다.
이 순서로 진행해야한다.
바로 서버에있는 FBX를 받고적용시키는거는 안돼더라..
서버에서 Assetbundle 받을때 서버에서 .unity3d(에셋번들확장자) 확장자 접근권한 설정해줘야한다.
(1) AssetBundle Browser 설치
Window > PackageManager -(All packages) > AssetBundleBrowser검색 > install
*PackageManager에서 검색안될때 Git으로 설치
PackageManager > 왼쪽의 (+)버튼클릭 > Add Package from Git URL 입력
https://github.com/Unity-Technologies/AssetBundles-Browser.git
- Git으로 Package 설치 중 오류 있을때 해결방법
https://learnandcreate.tistory.com/729
(2) 번들 만드는법
1."Asset Bundle Browser"를 PackageManager에서 import
2. window > assetbundle browser 클릭
3. Build 탭 선택 후 다음과 같이 세팅
4. 원하는 FBX파일 선택 후 assetbundle browser 의 Configure로 끌어다 놓기 (FBX이름으로 AssetBundle이름 생성됨)
5. "unity3d" 타이핑
- 1번 : 번들이름 (AssetBundle 생성하면 설정한 이름으로 생성됨)
- 2번 : unity3d 라고 작성
6. Build 탭에서 Build버튼 클릭 하면 AssetBundle 만들어짐
- 저장위치 : Output Path
(3) 번들 불러오는법
1. AssetBundle 불러오는 방법 (AssetBundle을 저장할때 "unity3d"라고 뒤에 붙여줬었음)
public IEnumerator InitBundle(string bundleName)
{
string path = bundleName + ".unity3d";
AssetBundle bundle;
float proccessing=0;//로딩 프로그레스 값
using (var uwr = UnityWebRequestAssetBundle.GetAssetBundle(path))
{
var operation = uwr.SendWebRequest();
while (!operation.isDone)
{
proccessing = uwr.downloadProgress;
yield return null;
}
bundle = DownloadHandlerAssetBundle.GetContent(uwr);
}
}
2. AssetBundle 안에 있는 내용 불러오는 방법 (FBX)
public IEnumerator LoadObject(string objName)
{
//bundle : 이전에 불러온 AssetBundle값
if (bundle == null)
{
yield return InitBundle(cushionCode);
}
var prefab = bundle.LoadAsset<GameObject>(objName);
GameObject obj = Instantiate(prefab);
yield return null;
}
'Unity' 카테고리의 다른 글
UnityHub에서 프로젝트가 안 열릴때... 해결방법 (0) | 2022.01.07 |
---|---|
unity APK 파일 스마트폰에 수동설치 안될때.. (1) | 2021.11.09 |
구글스토어 aab (150Mb이상)파일 업로드방법 (0) | 2021.09.02 |
untiy WebGL 로컬파일(html) 열기 (0) | 2021.06.19 |
Assetbundle download is complete, but no data have been received 오류 (0) | 2021.06.19 |