728x90
반응형
초기 앱 크기를 줄이기 위해 또는 중간 업데이트를 위해
Asset을 별도로 저장해 두었다가 필요 시 Load 하는 방법
폴더 지정 후 Build Asset Bundle
using System.IO;
using UnityEditor;
public class SimpleAssetBundleBuild
{
[MenuItem("Assets/Build AssetBundle Test")]
public static void Build()
{
var assetBundleDirectory = "./AssetsForBundle";
if (!Directory.Exists(assetBundleDirectory))
{
Directory.CreateDirectory(assetBundleDirectory);
}
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, BuildTarget.iOS);
EditorUtility.DisplayDialog("에셋 번들 빌드 종료", "END" , "OK");
}
}
Application 빌드 시에는 Project 상에서 에셋번들로 빌드한 파일은 삭제
별도 폴더에서 필요시 로드
using UnityEngine;
public class AssetLoad : MonoBehaviour
{
IEnumerator Start()
{
var ab = AssetBundle.LoadFromFile("AssetsForBundle/bundleguitar");
if (ab == null)
{
yield break;
}
var prefab = ab.LoadAsset<GameObject>("Guitar");
Debug.Log("Loaded");
GameObject Guitar = Instantiate(prefab, new Vector3(17.9f, 0.578f, 15.179f), Quaternion.Euler(6.876f,33.711f,79.8f));
Debug.Log("Instantiate");
Guitar.SetActive(false);
yield return new WaitUntil(() => Input.GetMouseButton(0));
Guitar.SetActive(true);
yield return new WaitUntil(() => Input.GetMouseButton(1));
ab.Unload(true);
Debug.Log("Unloaded");
}
}
728x90
반응형
'Unity' 카테고리의 다른 글
Unity 코딩 스타일 연습 (0) | 2021.06.17 |
---|---|
Voice Call 음성채팅 / Video Call 화상전화 (0) | 2021.06.16 |
MMO server / 네트워크 엔진 검토 (0) | 2021.06.04 |
FMOD Project 시작하기 (0) | 2021.05.04 |
Unity 내 영상 Display (0) | 2021.05.03 |