์ด๋๋ ์๋ธ ์๊ธฐ๊ฐ ๋์
ํธํ๊ฒ ์ธ ์ ์๋ ๋ฐฉ๋ฒ ๊ณต์ ํฉ๋๋ค.
๋จผ์ , ํด๋น ์ฝ๋๋ ์ง์ ์์ฑํด์ ํ์ฌ ๋ง๋๋ ๊ฒ์์ ์ด์ฌํ ์ฌ์ฉ ์ค์ด๊ณ , ํ ์คํธ๋ ๋๋ฌ๋๋ฐ
ํ๋ฒ ์จ๋ณด์๊ณ , ๋ ์ข์ ๋ฐฉ๋ฒ ์์ผ๋ฉด ๊ฐ๋ํด์ ์ฐ์๋ฉด ๋ฉ๋๋ค.
์ถํ ์ ๋ํฐ ์์ ์คํ ์ด์ ๋ฌด๋ฃ๋ก ๊ณต์ ํ ์์ ์ ๋๋ค.
[ํต์ฌ ์ฝ๋]
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement.ResourceLocations;
using UniRx.Async;
public static class CreateAddressablesLoader {
ย ย //# ์ด๋๋ ์๋ธ ์์ฑ
ย ย public static async UniTask CreateAddressable<T>(string assetNameOrLabel, List<T> createObjs) where T : Object
ย ย {
ย ย ย ย var locations = await Addressables.LoadResourceLocationsAsync(assetNameOrLabel).Task;
ย ย ย ย await CreateThenUpdateCollection(locations, createObjs);
ย ย }
ย ย static async UniTask CreateThenUpdateCollection<T>(IList<IResourceLocation> locations, List<T> createdObjs) where T : Object
ย ย {
ย ย ย ย foreach (var location in locations)
ย ย ย ย {
ย ย ย ย ย ย var temp = await Addressables.LoadAssetAsync<T>(location).Task as T;
ย ย ย ย ย ย if (createdObjs.Contains(temp)) return; // ์ด๋ฏธ ํฌํจ๋ ์ํ๋ผ๋ฉด ๋ฆฌํด
ย ย ย ย ย ย createdObjs.Add(await Addressables.LoadAssetAsync<T>(location).Task as T);
ย ย ย ย }
ย ย }
}
[SerializeField] private List<GameObject> monsters;
...
/// <summary>
/// ์ด๋๋ ์๋ธ - ํด์ (๊ฒ์ ๋๋ ํ)
/// </summary>
public async UniTask ClearAsset<T>(List<T> t) where T : UnityEngine.Object
{
ย ย for (int i = 0; i < t.Count; i++)ย {
ย ย ย ย if (t[i] == null) continue;
ย ย ย ย if (!t.Contains(t[i])) continue;
ย ย ย ย else t.Remove(t[i]);
ย ย ย ย if (t.GetType().Name == "GameObject") Addressables.ReleaseInstance(t[i] as GameObject);
ย ย }
ย ย t.Clear();
}
์ ์ฌํ ๋ณผ ๋ถ๋ถ์ Addressable.ReleaseInstance
๋ณดํต Release ํ๋ฉด ๋~ ๋๋ ์ค ์๋ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
GameObject ํ์ ์ Release ํ์ ๋, ๋ฉ๋ชจ๋ฆฌ ํด์ ๊ฐ ์๋๋ ๊ฒฝ์ฐ,
ReleaseInstance ๋ก ์๋ํด๋ณด์ธ์ :)
๊ฐ์ธ์ ์ผ๋ก UniRx / Linq ๋ฅผ ์ฌ์ฉ์ค์ธ๋ฐ
์.. ์ฝ๋ฃจํด์ผ๋ก ํด๋ ์๊ด ์์ต๋๋ค.
์ค์.... ์ข๊ตฌ๋ง
๋ก๋ํ๋ ค๋ ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ๋ค ๋ก๋๋์๋์ง๋ ์ด๋์ ์ฒดํฌ!?
์ฒ์ ๋ผ๋ฒจ๋ณ๋ก ๋ค์ด๋ก๋ ํ๋ ๋ถ๋ถ์ ์๋ ๋ํผ๋ฐ์ค๊ฐ ๋ง์์ ์๋ตํ๊ธด ํ๋๋ฐ ํน์ ํ์ํด?
๋์ค์ ์์ ์คํ ์ด์ ์ฌ๋ฆฌ๋ฉด ๊ทธ๋ ๋ณด๋ฌ๊ฐ๊ฒก! ๋น์ฅ์ ๋์ถฉ ํด๋์ ใ ใ ๊ถ๊ธํ๊ฒ ๋ผ๋ฒจ ์ค์์๋ ๋ก๋ํ ๋ฐ์ดํฐ์ ๋ก๋ํ๋ฉด ์๋๋ ๋ฐ์ดํฐ๊ฐ ์์์? ๊ทธ๋ด๋ ์ฐ์ฐํด? ์๋ฅผ ๋ค๋ฉด hero ๋ผ๋ฒจ ์ค์ ์ ์ ๊ฐ ์ฅ์ฐฉํ hero๋ง ๋ก๋ํด์ผ ํ๋ค๋ฉด?
https://planek.tistory.com/28
์ด๊ฑฐ
์๊ธฐํ๋๊ฑฐ ๊ฐ์๋ฐ
์ด๋๋ ์๋ธ ๋ผ๋ฒจ์ด ์์นํ ๊ฒฝ๋ก๋ฅผ ์ฐ์ ํ์ธํ๊ณ (์ด๊ฑด ๋ฉ๋ชจ๋ฆฌ ์๋ค์ด๊ฐ)
์ด๋๋ ์๋ธ ๋ผ๋ฒจ ์์ ํน์ ์ค๋ธ์ ํธ ๋ถ๋ฌ์ค๋ ๊ฑด๋ฐ
์ด๋ฏธ ์ฐ๊ณ ์์ง ์์์ด?
๋ด๊ฐ ์๊ฐํ๋๊ฒ ๋ง๋ํด์ ์ ์ ๋ฐ์ดํฐ์ ์ฅ์ฐฉํ ์์ ์ ์ด๋๋ ์ค ์ฃผ์ ๊ฐ์ ์ ์ฅํด๋์ผ๊ฒ ๋ค - dc App
ํ . ๊ธฐ์กด API ์ฐ๋ฉด ์๋๋? ๊ตณ์ด ์ด๋ ๊ฒ ๋ง๋ค์ด ๋๋ ์ด์ ๋ฅผ ๋ชจ๋ฅด๊ฒ ์.