카드를 획득할 때 인벤토리에서 원하는 위치에서 생성되게 할 것이고,
하이어라이키 관점에서 봤을때는 부모와 같은 위치에서 생성되어야 Canvas 안에 적용이 될 것이다.
https://docs.unity3d.com/ScriptReference/Object.Instantiate.html
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PreparedCard : MonoBehaviour
{
private Button btn;
private float spacing = 11.8f;
void Start()
{
btn = GetComponent<Button>();
btn.onClick.AddListener(() =>
{
Debug.Log("버튼이 눌림");
// 새로운 오브젝트를 생성하고, 원본의 부모에 붙이기
GameObject newObject = Instantiate(gameObject, transform.parent);
// 새로운 오브젝트의 로컬 위치 조정
newObject.transform.localPosition += new Vector3(spacing, 0, 0);
});
}
}
하지만 그리드 레이아웃을 설정할 때 이 spacing을 조절하였으므로
따로 spacing을 조절하지 않아도 되서 주석처리하였다.
시작을 하면 플레이어의 카드 인포를 찾아서 값을 가져올 수 있도록 변경
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class PreparedCard : MonoBehaviour
{
private Button btn;
//private float spacing = 11.8f;
public TMP_Text value;
void Start()
{
PlayerManager.Instance.LoadPreparedCardData();
PlayerManager.Instance.LoadPreparedCardInfo();
this.value.text = PlayerManager.Instance.dicPreparedCardInfo[2000].value.ToString();
btn = GetComponent<Button>();
btn.onClick.AddListener(() =>
{
Debug.Log("버튼이 눌림");
// 새로운 오브젝트를 생성하고, 원본의 부모에 붙이기
GameObject newObject = Instantiate(gameObject, transform.parent);
// 새로운 오브젝트의 로컬 위치 조정
//newObject.transform.localPosition += new Vector3(spacing, 0, 0);
Debug.Log(value.text);
});
}
}
'Project > Skill Steal Girl' 카테고리의 다른 글
[SSG] 최종프로젝트 프로토타입 - Instantiate Data Image 중복 삭제 (0) | 2024.05.10 |
---|---|
[SSG] 최종프로젝트 프로토타입 - Instantiate Data Image (0) | 2024.05.09 |
[SSG] 최종프로젝트 프로토타입 - 데이터 불러오기 및 인벤토리 팝업 (0) | 2024.05.01 |
[SSG] 최종프로젝트 프로토타입 - 인벤토리 그리드로 만들기 (1) | 2024.05.01 |
[SSG] 최종프로젝트 프로토타입 - 맵 컴포넌트 UI 제작 (0) | 2024.05.01 |