분류 전체보기(158)
-
포션 칸 만들기
포션을 가지고 있을때 플레이어가 사용하기 쉽게 만들어 주기 위해서 포션칸을 UI로 만들어 주기로 했다.첫번째로 포션슬롯이 생길 위치를 오브젝트로 지정을 해준 다음에 보유한 아이템중에 포션이 있으면 해당 아이템의 슬롯을 생성하게 만들었다. public class Potion : UIBase{ [SerializeField] private Transform hpPotion; [SerializeField] private Transform mpPotion; [SerializeField] private GameObject objCell; public void Initialized() { if (ItemManager.Instance.FindItemItemId(1601) ..
2025.01.02 -
버튼 클릭 두번되는 현상 발생 - 버그수정
분해할 아이템을 저장한 다음에 해당 아이템 테이블에서 분해할 아이템 지정해 놓은거를 반환해서 가져온뒤 딕셔너리를 통해서 값을 저장하는데 이때 중복된 키를 가지고 있으면 값을 늘리는 방식으로 코드를 작성했다.public void OnDisassembly() //아이템 분해 버튼 클릭시 분해 아이템 획득{ Dictionary rewards = new Dictionary(); int count = 0; for (int i = 0; i reward in rewards) { GameObject goItem = Instantiate(objCell, rewardsPanel); ItemInstance itemInstance = ItemManager...
2024.12.31 -
OutLine 컴퍼넌트 설정
BackGround에 OutLine 컴퍼넌트를 붙인후에 꺼놨다. 문제그리고 내가 원하는 위치에 OutLine을 켜주기 위해서 필드값으로 지정해준 컴퍼넌트를 타고 들어가서 OutLine을 가져올려고 [SerializeField] private Image backGround;backGround.GetComponent().enabled = true; 코드를 이렇게 작성하니깐 outline이 켜지지가 않았다. 그래서 직접 컴퍼넌트를 받아서 다시 작성해보니[SerializeField] private Outline outLine;outLine.enabled = true;이렇게 작성해도 안됐다. 아니다 위와같이 작성하니 잘 됐다. 내가 안됐다고 생각했던 이유는 아웃라인을 키자말자 지우고 다시 켜서 안켜졌던것처럼 보였..
2024.12.30 -
JSON사용할때 JsonUtility 에서 newtonsoft로 교체
처음에 밑에 코드와 같이 JsonUtility를 사용해서 JSON데이터를 다뤘는데 JSON에서 데이터를 가져올때 List형식으로 바꿔주야하는데 JsonUtility에서는 바꿔주기가 힘든거 같아서 JSON을 더 다양하게 사용할 수 있는 newtonsoft를 사용하기로 결정했다.public void SaveData(T data){ string json = JsonUtility.ToJson(data, true); File.WriteAllText(Application.persistentDataPath + $"/{typeof(T)}.txt", json);}public T LoadData(){ string filePath = Application.persistentDataPath + $"/{typ..
2024.12.27 -
대장간에서 코루틴 사용 / 면접질문 : Unity 생명주기(Unity Life Cycle)에 대해서 설명해주세요.
대장간에서 강화를 했을때 강화에 성공하면 성공팝업을 띄어줄려고 하는데 이때 2초동안만 팝업창을 띄우고 그다음에는 자동으로 팝업창을 닫게끔 만들려고 코드를 작성했다.코드private IEnumerator WaitTime(){ closeButton.gameObject.SetActive(true); yield return new WaitForSeconds(2f); failure.SetActive(false); success.SetActive(false); Hide(); UIManager.Instance.Hide(); UIManager.Instance.Show().Initialize(_item);}위와같이 작성하면 팝업창이 2초동안 켜지고 그다음에 꺼지는 코드가 작성이 된다..
2024.12.26 -
대장간 - 가중치를 이용한 무기 강화
아이템 강화할때 가중치를 이용해서 아이템을 강화하도록 만들었다.private List probs = new List{20, 200};리스트 하나를 만들어주고 0번째 인덱스 자리에 있는 숫자가 실패할 확률 1번째 인덱스자리에 있는 숫자가 성공 확률이다.그래서 1번째 인덱스 값을 몇강인지에 따라서 강화확률이 줄어들게 만들었다.private void EnhancementProbability(){ if (_item.enhance 밑에 코드가 가중치를 이용해서 아이템 강화를 결정하는 코드이다.private bool GetGradeType() //가중치 랜덤{ EnhancementProbability(); total = 0; for (int i = 0; i
2024.12.24