RandomGFGoStop/Assets/UI/ShowAlbum/ShowPanel.cs

91 lines
2.6 KiB
C#

using CodeJay.Classes;
using UnityEngine;
public class ShowPanel : MonoBehaviour
{
public Camera m_Cam;
public SpriteRenderer i_image;
public GameObject[] gos_off;
public GameObject go_btns, go_x;
public bool isFull;
int zoomStep = 0;
public void Set(HuntingData data)
{
gameObject.SetActive(true);
DSUtil.InActivateGameObjects(gos_off);
go_btns.SetActive(true);
go_x.SetActive(false);
i_image.sprite = data.HuntingImage();
isFull = false;
zoomStep = 0;
m_Cam.orthographicSize = 4f;
m_Cam.transform.position = new Vector3(0f, 0f, -10f);
//Set_ImageSize();
GameManager.ADS.HideBanner();
}
void Set_ImageSize()
{
// 스프라이트의 원래 크기(픽셀 단위)
float spriteWidth = i_image.sprite.bounds.size.x;
float spriteHeight = i_image.sprite.bounds.size.y;
// 카메라
float worldScreenHeight = m_Cam.orthographicSize * 2f; // 세로 크기(월드 단위)
float worldScreenWidth = worldScreenHeight * m_Cam.aspect; // 가로 크기(월드 단위)
// 배경 스케일 계산
i_image.transform.localScale = new Vector3(
worldScreenWidth / spriteWidth,
worldScreenHeight / spriteHeight,
1f
);
}
public void OnClick_Btn(int index)
{
switch (index)
{
case 0: // 나가기
gameObject.SetActive(false);
DSUtil.ActivateGameObjects(gos_off);
GameManager.ADS.ShowBanner();
i_image.sprite = null;
break;
case 1: // 풀 스크린
go_btns.SetActive(false);
go_x.SetActive(true);
Invoke("Set_Full", Time.deltaTime);
break;
case 2: // 확대 (2단계까지만)
++zoomStep;
if (zoomStep > 2) zoomStep = 2;
m_Cam.orthographicSize = 4 - zoomStep;
break;
case 3: // 축소
--zoomStep;
if (zoomStep < 0) zoomStep = 0;
m_Cam.orthographicSize = 4 - zoomStep;
m_Cam.transform.position = new Vector3(0f, 0f, -10f);
break;
case 4: // UI 다시 보이기
if (isFull)
{
isFull = false;
go_btns.SetActive(true);
go_x.SetActive(false);
}
break;
}
}
void Set_Full()
{
isFull = true;
}
}