Unity/Else

Unity Asset Bundle

๐ŸŸฆ Unity Asset Bundle

๐ŸŸง Document

https://docs.unity3d.com/kr/530/Manual/BuildingAssetBundles.html

 

์œ ๋‹ˆํ‹ฐ - ๋งค๋‰ด์–ผ: 4.x๋ฒ„์ „์—์„œ์˜ ์—์…‹๋ฒˆ๋“ค ๋นŒ๋“œ

์—์…‹๋ฒˆ๋“ค (AssetBundles) 4.x๋ฒ„์ „์—์„œ์˜ ์—์…‹๋ฒˆ๋“ค ๋นŒ๋“œ To begin creating an AssetBundle (called AssetBundle in scripts and within the Unity Editor), select an asset from your project folder that you want to include in a bundle. At the very bott

docs.unity3d.com

https://docs.unity3d.com/2017.4/Documentation/Manual/AssetBundles-Native.html

 

Unity - Manual: Using AssetBundles Natively

Using AssetBundles Natively Important note: The AssetBundle Manager is deprecated for Unity versions 2018.2 and higher. It is no longer available from the Asset Store, but you can still download it from the AssetBundleDemo Bitbucket repository. If you use

docs.unity3d.com

 

 

 

๐ŸŸฆ Bundle Build

- AssetBundle์„ ์ •์˜ : bundle_1

 

 

 

- Box ํ”„๋ฆฌํŒน๋„ bundle_1๋กœ ์„ค์ •

 

 

 

- ํด๋” ์ƒ์„ฑ : AssetBundles

 

 

 

- ํด๋” ์ƒ์„ฑ : Editor

    - ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ : CreateAssetBundles

 

 

 

using UnityEditor;

public class CreateAssetBundles
{
    [MenuItem("Assets/Build AssetBundles")]
    static void BuildAllAssetBundles()
    {
        // ์—์…‹๋ฒˆ๋“ค ์ƒ์„ฑ ๊ฒฝ๋กœ, ๋นŒ๋“œ ์˜ต์…˜, ๋นŒ๋“œ ๋Œ€์ƒ ํ”Œ๋žซํผ
        BuildPipeline.BuildAssetBundles("Assets/AssetBundles", BuildAssetBundleOptions.None, BuildTarget.Android);
    }
}

 

 

 

- Build AssetBundles ํด๋ฆญํ•˜๋ฉด ์—์…‹๋ฒˆ๋“ค์„ ๋นŒ๋“œํ•จ

 

 

 

- AssetBundles ํด๋” ์•ˆ์— ์œ„์™€ ๊ฐ™์€ ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ ๊ฒƒ์„ ํ™•์ธ

 

 

 

๐ŸŸฆ Bundle Load

๐ŸŸง LoadFromMemoryAsync

- ๋นˆ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ : LoadManager

- ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ : LoadManager

 

 

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;

public class LoadManager : MonoBehaviour
{
    // ๋กœ๋“œํ•  ์—์…‹๋ฒˆ๋“ค ๊ฒฝ๋กœ
    private string assetBundlePath = "Assets/AssetBundles/bundle_1";
    // ๋ถˆ๋Ÿฌ์˜ฌ ์˜ค๋ธŒ์ ํŠธ ์ด๋ฆ„
    private string asset_box = "Box";

    void Start()
    {
        StartCoroutine(nameof(LoadFromMemoryAsync), assetBundlePath);
    }

    IEnumerator LoadFromMemoryAsync(string path)
    {
        // ์ง€์ • ๊ฒฝ๋กœ์— ์žˆ๋Š” ๋ชจ๋“  ๋ฐ”์ดํŠธ๋ฅผ ์ฝ์–ด์„œ ๋กœ๋“œ
        AssetBundleCreateRequest createRequest = AssetBundle.LoadFromMemoryAsync(File.ReadAllBytes(path));
        // ๋ชจ๋‘ ๋กœ๋“œํ•  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ
        yield return createRequest;

        AssetBundle bundle = createRequest.assetBundle;
        // ๋กœ๋“œํ•œ ์—์…‹๋ฒˆ๋“ค์—์„œ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ ๋กœ๋“œ
        var prefab = bundle.LoadAsset<GameObject>(asset_box);

        // ๋ถˆ๋Ÿฌ์˜จ ๊ฒŒ์ž„์˜ค๋ธŒ์ ํŠธ ์ƒ์„ฑ
        Instantiate(prefab);
    }
}

 

 

 

- ์—์…‹๋ฒˆ๋“ค๋กœ ์„ค์ •ํ•œ Box ํ”„๋ฆฌํŒน์„ ์‚ญ์ œ ํ›„ Play

'Unity > Else' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ ˆ์ด์•„์›ƒ ์žฌ์ •๋ ฌ  (0) 2022.05.27
Unity VScode Debugging  (0) 2022.05.23
Animation Rigging  (0) 2022.04.01
AudioMixer  (0) 2021.10.31
TMP(Text Mesh Pro) ํ•œ๊ธ€ ์ƒ์„ฑ  (0) 2021.10.30