AssetBundle Build
Assetbundle 만들기
Assetbundle 빌드 스크립트 만들기
using UnityEngine;
using UnityEditor;
using System.IO;
public class BuildAssetBundle : MonoBehaviour
{
static string assetBundleDirectory = "Assets/AssetBundles";
[MenuItem("Tools/Build AssetBundles")]
static void BuildAllAssetBundles()
{
if (!Directory.Exists(assetBundleDirectory))
{
Directory.CreateDirectory(assetBundleDirectory);
}
#if UNITY_ANDROID
BuildPipeline.BuildAssetBundles(assetBundleDirectory,
BuildAssetBundleOptions.None,
BuildTarget.Android);
#elif UNITY_IOS
BuildPipeline.BuildAssetBundles(assetBundleDirectory,
BuildAssetBundleOptions.None,
BuildTarget.StandaloneOSXUniversal)
#else
BuildPipeline.BuildAssetBundles(assetBundleDirectory,
BuildAssetBundleOptions.None,
BuildTarget.StandaloneWindows64);
#endif
}
}
Load AssetBundle
Local
using UnityEngine; using UnityEngine.Networking; using System.IO; public class Assetbundleload : MonoBehaviour { [SerializeField] AssetBundle assetbundle; private void Start() { // AsssetBundle의 로컬 패스 string assetBundleDirectory = Application.dataPath + "/AssetBundles/prefabs.cube"; // AssetBundle로드 assetbundle = AssetBundle.LoadFromFile(assetBundleDirectory); // AssetBundle로부터 원하는 에셋 로드 GameObject prefab = assetbundle.LoadAsset<GameObject>("Cube"); Instantiate(prefab); } }
Wab
using UnityEngine; using UnityEngine.Networking; using System.IO; public class Assetbundleload : MonoBehaviour { [SerializeField] AssetBundle assetbundle; private void Start() { StartCoroutine(InstantiateObject()); } IEnumerator InstantiateObject() { // AssetBundle의 web url (예제에선 local path) string assetBundleDirectory = "file:///" + Application.dataPath+"/AssetBundles/prefabs.cube"; // 웹요청 UnityWebRequest request = UnityWebRequestAssetBundle.GetAssetBundle(assetBundleDirectory, 0); yield return request.SendWebRequest(); // 웹에서 AssetBundle을 받아옴 assetbundle = DownloadHandlerAssetBundle.GetContent(request); // 받아온 AssetBundle로부터 원하는 에셋 로드 GameObject prefab = assetbundle.LoadAsset<GameObject>("Cube"); Instantiate(prefab); } }
'Unity&C# > Unity' 카테고리의 다른 글
[Unity 2D] Sprite Flip (0) | 2024.10.14 |
---|---|
[Unity] Frame (0) | 2024.10.14 |
data path (0) | 2023.09.25 |
[input system] 작성중 (0) | 2022.09.20 |
[Unity] Create asset menu (0) | 2022.09.01 |