***
Destroy(this) = 해당 스크립트를 파괴
Destroy(this.gameObject) = 해당 스크립트가 부착되어있는 게임 오브젝트 파괴
***
+++++++
동적으로 파일 로드해서 UIChestCell 로드 해보기
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class UIChestCell : MonoBehaviour
{
public enum eChestType
{
Wooden,
Silver,
Golden,
Epic,
Legendary
}
[SerializeField]
protected Button btnPrice;
[SerializeField]
protected eChestType chestType;
[SerializeField]
protected int price;
[SerializeField]
private TMP_Text txtName;
[SerializeField]
private Image icon;
[SerializeField]
private TMP_Text txtPrice;
public eChestType ChestType
{
get
{
return chestType;
}
}
public int Price => price;
//public int Price -> 동일한 기능을 하는 코드
//{
// get { return this.price; }
//}
public System.Action onClickPrice;
public virtual void Init(ChestData data)
{
Debug.LogFormat("[UIChestCell] Init : {0}", this.chestType);
price = data.price;
txtName.text = data.name;
txtPrice.text = price.ToString();
chestType = (eChestType)data.type;
var atlas = AtlasManager.instance.GetAtlas("UIAtlas");
icon.sprite = atlas.GetSprite(data.sprite_name);
icon.SetNativeSize();
btnPrice.onClick.AddListener(() => {
Debug.LogFormat("{0}, {1}", this.chestType, this.price);
onClickPrice();
});
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UIChestCellAd : UIChestCell
{
[SerializeField]
private Button btnAd;
public System.Action onClickAd;
public override void Init(ChestData data)
{
base.Init(data);
Debug.LogFormat("[UIChestCellAd] Init : {0}", chestType);
this.btnAd.onClick.AddListener(() => {
Debug.LogFormat("{0}, 광고보기", chestType);
onClickAd();
});
}
}
20. 프리팹의 클릭 이벤트를 제어할 스크립트를 생성 후, 각각의 프리팹에 부착
'KDT > 유니티 심화' 카테고리의 다른 글
LearnUGUI (Gold Packs - 데이터 테이블 만들고 연동하기) - 2 (0) | 2023.09.12 |
---|---|
LearnUGUI (Gold Packs - 데이터 테이블 만들고 연동하기) - 1 (0) | 2023.09.11 |
LearnUGUI 연습 (7. ShopChest 정적 스크롤뷰 관리 하는 스크립트 만들기) (0) | 2023.09.10 |
LearnUGUI 연습 (6. ShopChest 정적 스크롤뷰 만들기) (0) | 2023.09.09 |
LearnUGUI 연습 (5. UIPageStage 단계 별 적용하기) (0) | 2023.09.08 |