전체 글 127

📅06/16 | TIL 인벤토리 & 아이템 사용

🎯 목표인벤토리 Slot아이템 사용💡 인벤토리 Item Slot 배열할당 + 인덱스값 적용public class ItemSlot : MonoBehaviour{ public ItemData item; public UIInventory inventory; public int index; public bool equipped; public int quantity;} Inventory값 초기화Start()에서 For문으로 인덱스 값 할당해당 스크립트의 slots[i].inventory = this로 할당private void Start(){ controller = CharacterManager.Instance.Player.controller; condition = Cha..

Today I Learn/25.06 2025.06.16

📅06/14 | TIL 아이템 상호작용

🎯 목표Scriptable Object 활용상호작용 로직 다시 공부Action 활용💡 아이템 프리팹 생성 및 Scriptable Object 활용[CreateAssetMenu(fileName = "Item", menuName = "New Item")]public class ItemData : ScriptableObject{ [Header("Info")] public string displayName; public string description; public ItemType type; public Sprite icon; public GameObject dropPrefab; [Header("Stacking")] public bool canStack; ..

Today I Learn/25.06 2025.06.14

📅06/12 | TIL 3D 데미지 처리 및 낮 밤 구현

🎯 목표이전 3D강의에서 실제 구현해보지 않았던 부분 정확히 알아보기플레이어 데미지 처리낮 밤 구현💡 플레이어 데미지 처리인터페이스 생성public interface IDamageable{ void TakePhysicalDamage(int damage);}PlayerCondition 인터페이스 상속UI 실제 데미지 처리public event Action onTakeDamage;public void TakePhysicalDamage(int damage) { health.Subtract(damage); onTakeDamage?.Invoke(); } 데미지를 주는 오브젝트가 주체 - CampFireOnTriggerEnter에서 IDamageable 상속 받은 Co..

Today I Learn/25.06 2025.06.12

바로인턴 | 4주 - 긱블

🔥 목표 🔥 1. 배움과 기록을 성실히 하기 📝 2. 현업에서 소통 열심히 하며 많이 배우기 3. 현업에서 프레임워크 및 코드 구조 익히기 - Keep 👍 1. TIL 꾸준히 작성하기! - Problem 🤯 1. 구조파악에 시간이 좀 걸렸다. - 프로젝트가 중반 이상 진행된 상태였고, 처음 맡았던 기능 외에 새롭게 배정받은 기능 구현 업무도 있어 관련된 구조를 파악하는 데 다소 시간이 걸렸다. - Try ✊ 1. 주말에도 공부하기! - 리팩토링 (다른 방법은 어떤 것들이 있는지) 💻 바로인턴 총평 처음 배정받은 UIPopup에서 구조파악에 많은 시간이 소요되었고, 기존 프로젝트에서는 경험하지 못했던 다양한 구현을 해보며다음 프로젝트에 활용할 수 있는 프레임워크 구성 아..

회고록 2025.06.11

📅05/27 | TIL - 스킬 레벨업 기능 구현 및 디버깅 (+본 형태 Sprite)

💡 스킬 레벨업 비용 조회 방식 개선기존에는 하드코딩된 _maxSkillPieces 값을 사용했지만,TRSkillLevelUpCost 테이블의 RequiredSkillPiece를 기반으로 동적으로 계산하도록 개선함. GetRequiredSkillPiecesCount() 함수에서 딕셔너리 접근 대신데이터 테이블에서 SkillId와 Level을 기준으로 RequiredSkillPiece를 가져오도록 수정.이를 통해 스킬 진행도 UI 및 조건 체크 로직의 정확도가 높아짐.💡 레벨업 실패 이슈 해결CanLevelUp()과 SkillLevelup() 함수의 costData 탐색 조건이 달라costData가 null이 되어 레벨업이 되지 않는 문제를 발견 해결: 두 함수 모두 cost.Level == cur..

Today I Learn/25.05 2025.05.28

📅05/23 | TIL UIMask를 활용한 반전 & 스킬 장착 슬롯

📌 UI 패널 비활성화 동작 원리 이해 ✅ 상황특정 액션을 통해 UI 팝업이 꺼졌다 켜지는 동작이 구현되어 있음.인스펙터 등에서 UI 패널을 직접 등록하지 않았는데도 정상 동작함.public event Action EquipUICallback;public void OpenEquipUI(){ IsPolyEquiping = true; EquipUICallback?.Invoke(true);}public void CloseEquipUI(){ IsPolyEquiping = false; EquipUICallback?.Invoke(false);}private void OnClickCancel(){ DeckManager.Instance.SelectedPoly = null; DeckMa..

Today I Learn/25.05 2025.05.28

📅05/21 | TIL Action 이벤트 구조 설계와 구독 관리

✅ 1. Action을 사용하는 이유이벤트 기반으로 여러 객체 간 느슨한 결합을 만들기 위함호출자는 구독자가 있는지 몰라도 되고, 구독자는 필요한 이벤트만 처리 가능+= 연산자를 통해 간단하게 구독/해제 가능✅ 2. 기초 구조 예시 public class UIManager : MonoBehaviour{ public static UIManager Instance; public Action OnUpdateUI; private void Awake() => Instance = this; public void UpdateUI() { OnUpdateUI?.Invoke(); // 구독자에게 알림 }} // 다른 스크립트에서 구독UIManager.Instance.OnUpda..

Today I Learn/25.05 2025.05.21

📅05/15 | TIL UI 팁 및 문제 해결 정리

✨ 1. 데이터에 따라 이미지 유무에 따른 UI 처리if (data.hasImage){ imageObj.gameObject.SetActive(true); imageObj.sprite = data.sprite;}else{ imageObj.gameObject.SetActive(false);} BG, Image, Text 오브젝트가 데이터에 따라 유동적으로 반영될 수 있도록 조건 분기. ✨ 2. 동적 리스트 정렬 기능 구현스킬 목록을 이름순 / 레벨순 정렬할 수 있도록 버튼에 따라 정렬 함수 적용:skillList = skillList.OrderBy(x => x.name).ToList(); // 이름순skillList = skillList.OrderByDescending(x => x.l..

Today I Learn/25.05 2025.05.15

📅05/14 | TIL UIMainLobby 기본 구성

✨ 1. 툴팁 vs 팝업툴팁: 특정 UI 요소에 마우스를 올렸을 때 짧게 나타나는 설명.팝업: 유저 액션(클릭 등)에 반응해 화면 위에 뜨는 독립적인 창. 더 많은 정보나 선택지를 제공.✨ 2. Content Size Fitter 사용법이전에 사용 해봤으나 할때마다 설정법을 까먹는다😥Content Size Fitter는 자식 요소 크기에 맞춰 부모 오브젝트의 크기를 자동 조절하는 컴포넌트.Vertical Layout Group과 함께 사용할 때 Height 방향을 Preferred Size로 설정하면, 자식들이 늘어나면 자동으로 아래로 확장됨.주의: 부모에 Layout Group, 자식에 ContentSizeFitter를 붙이는 구조는 충돌 날 수 있으므로 Layout 그룹 기준을 분명히 설정해야 ..

Today I Learn/25.05 2025.05.14

📅05/09 | TIL Popup Data 파싱

// 패널별 데이터를 관리하는 딕셔너리 (각 패널에 대응하는 가격 정보)Dictionary panelPrices = new Dictionary{ { PnlNumber.FirstPanel, 1100 }, { PnlNumber.SecondPanel, 6600 }, { PnlNumber.ThirdPanel, 14000 }};// 패널에 맞는 가격을 가져오기if (panelPrices.TryGetValue(CurPnl, out int panelPrice)){ foreach (var dayBenefit in _uiPopupDayBenefitsc) { // 패널별 가격에 맞는 데이터 전달 dayBenefit.Init(panelPrice); }} get 프로퍼..

Today I Learn/25.05 2025.05.10