using asap.core; using cfg; using UnityEngine; using UnityEngine.AddressableAssets; public class FishEgg : AquariumFishBase { GameObject goPrefab; AquariumEgg egg; public async void LoadEgg(AquariumSlotData slotData) { this.slotData = slotData; if (egg != null) { return; } Tables tables = GContext.container.Resolve(); egg = tables.TbAquariumEgg.GetOrDefault(slotData.eggId); goPrefab = await Addressables.InstantiateAsync(egg.Prefab, transform).Task; if (egg == null) { Addressables.ReleaseInstance(goPrefab); goPrefab = null; } else if (goPrefab != null) { goPrefab.transform.localPosition = Vector3.zero; } } public void RemoveEgg() { egg = null; if (goPrefab != null) { Addressables.ReleaseInstance(goPrefab); goPrefab = null; } } private void OnDestroy() { RemoveEgg(); } }