using System; using UnityEngine; using UnityEngine.AddressableAssets; using UnityEngine.ResourceManagement.AsyncOperations; public class ShowAlbumBase { public string s_Image; } public class ShowPanel : MonoBehaviour { public SpriteRenderer i_image; public GameObject go_btns; public bool isFull; int zoomStep = 0; AsyncOperationHandle m_Handle; float original_orthographicSize; Action act_Close; public void Set(T data, Action actClose) { act_Close = actClose; gameObject.SetActive(true); go_btns.SetActive(true); i_image.enabled = false; AddrResourceMgr.Ins.LoadObject((data as ShowAlbumBase).s_Image, handle => { m_Handle = handle; i_image.enabled = true; i_image.sprite = handle.Result; }); isFull = false; zoomStep = 0; original_orthographicSize = Camera.main.orthographicSize; Camera.main.orthographicSize = 4f; Camera.main.transform.position = new Vector3(0f, 0f, -10f); } public void OnClick_Btn(int index) { switch (index) { case 0: // 나가기 gameObject.SetActive(false); AddrResourceMgr.Ins.Relese(m_Handle); i_image.sprite = null; Camera.main.orthographicSize = original_orthographicSize; act_Close(); break; case 1: // 풀 스크린 go_btns.SetActive(false); Invoke("Set_Full", Time.deltaTime); break; case 2: // 확대 (2단계까지만) ++zoomStep; if (zoomStep > 2) zoomStep = 2; Camera.main.orthographicSize = 4 - zoomStep; break; case 3: // 축소 --zoomStep; if (zoomStep < 0) zoomStep = 0; Camera.main.orthographicSize = 4 - zoomStep; Camera.main.transform.position = new Vector3(0f, 0f, -10f); break; case 4: // UI 다시 보이기 isFull = false; go_btns.SetActive(true); break; } } void Set_Full() { isFull = true; } }