Files
OCTOPUS_TWIN-Demo/Assets/Scripts/UI/ProjectItemView.cs
SOOBEEN HAN 6968d50444 [한수빈] 홈 화면 UI 변경
26.01.29
- 프로젝트 잠긴 버전 추가
- 언어 설정 (한글만 가능하도록)
2026-01-29 21:10:05 +09:00

60 lines
1.8 KiB
C#

using System;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
namespace OCTOPUS_TWIN
{
public class ProjectItemView : MonoBehaviour
{
[SerializeField] private TextMeshProUGUI textTitle;
[SerializeField] private TextMeshProUGUI textDesc;
[SerializeField] private Image imageThumbnail;
[SerializeField] private GameObject imageLock;
[SerializeField] private Button btnSelect;
private ProjectData myData;
// UI 갱신
private void UpdateUI(ProjectData data)
{
myData = data;
if (textTitle) textTitle.text = data.projectName;
if (textDesc) textDesc.text = data.description;
if (imageThumbnail) imageThumbnail.sprite = data.thumbnail;
}
// 클릭 가능한 프로젝트 세팅
public void Setup(ProjectData data, Action<ProjectData> onClickCallback)
{
UpdateUI(data);
imageLock.SetActive(false); // 잠금 화면 해제
// 재사용될 때를 대비해 버튼을 반드시 다시 켜줘야 함
btnSelect.enabled = true;
btnSelect.interactable = true; // 시각적 활성화
btnSelect.onClick.RemoveAllListeners();
btnSelect.onClick.AddListener(() => onClickCallback?.Invoke(myData));
}
// 열리지 않는 프로젝트 세팅
public void Setup(ProjectData data, Action onLockedClick)
{
UpdateUI(data);
// 잠금 화면 설정
imageLock.SetActive(true);
// 버튼 기능 끄지 않음
btnSelect.enabled = true;
btnSelect.interactable = true;
// 안전을 위해 리스너 제거
btnSelect.onClick.RemoveAllListeners();
btnSelect.onClick.AddListener(() => onLockedClick?.Invoke());
}
}
}