전체 글 132

📅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

📅05/07 | TIL UI구조

예쁜구도 코드를 짤때 신중하게? NO! 일단 짜고 나중에 리팩토링 / 개발속도 높이기!유니티 6다운로드 + 깃헙 브랜치 만들기UIPopup 을 상속받고, 사용 하도록 한다. UIPopup은 UIBase를 상속 받는다UIBase는 UIManager를 통해 관리한다. ✨ Test Func 만들기public class TestFunc : EditorWindow{ [MenuItem("🐛Test Func/[ Popup ]/Setting/Open Setting Popup")] public static void OpenSettingPopup() { Global.Popup.OpenPopup((int)PopupType.Setting); } [MenuItem("🐛Test..

Today I Learn/25.05 2025.05.07

📅05/02 | TIL 바로인턴 + UI

만들어지는 것 / 최종목표한달 실무 경험 쌓기 / 전환 - 적어도 기업에서 전환을 고려해보게끔그래야 한 달 인턴이 "진짜 이력"이 되게 만들 수 있지 않을까요?태도가 너무 좋았다.한달 동안 진짜 열심히 하자!적당히 하나 열심히 하나 똑같이 지나갈겁니다.눈감았다 뜨면 한 달 끝나 있을것임. 마인드 셋 부딧치면서 배운다는 마인드나의 업무현황을 정리하고더 잘 할 수 있는 방안을 고민하고실행하고회고를 진행하는 반복 사이클을 만들어보세요과정에서 혼자서 답을 찾기가 어렵다면,이에 대한 답을 내줄 수 있는 가장 적절한 사람이 누군지 파악하고 먼저 찾아가세요! 정말 빠른시간에 업무 완료하기추가적인 업무를 실행 해보기! 막히거나 안되는 부분이 있으면,예의있게, 예쁜말로 궁금한 점을 잘 정리하여 질문하기시간 낭비 하지 않..

Today I Learn/25.05 2025.05.02

📅04/30 | TIL Ref와 Out정의하기

💚ref와 out의 차이구분refout용도값을 읽고 쓰기 위해 참조 전달값을 쓰기만 위해 참조 전달초기화 여부호출 전 변수에 초기값이 있어야 함호출 전 변수는 초기화 안 돼도 됨함수 내부 동작함수가 값을 변경할 수도 있고 안 할 수도 있음함수가 값을 반드시 설정해야 함대표 예시값 변경 또는 누적 계산여러 개의 반환값을 리턴할 때 사용 ref 기존 값을 전달하고 수정하고 싶다out 함수에서 새 값을 만들어서 전달하고 싶다 ✅ 비유로 설명ref는 “뭔가 가져가서 고쳐줘”out은 “빈 그릇 줄 테니 너가 채워서 줘”🔷 ref 예제void AddTen(ref int num){ num += 10;}int x = 5;AddTen(ref x);Debug.Log(x); // 결과: 15 - x는 초기화되..

Today I Learn/25.04 2025.04.30

📅04/29 | TIL RayCast 재정의하기

🐛오류 카메라가 바닥과 맞닿아 있어 그라운드 랜더링 이상현상 강의 중간에 CameraContainer 오브젝트를 생성 후, Y 위치값을 지정해 주었는데, 나는 기본 0으로 되어있어 카메라가 바닥과 맞닿아있었다.카메라는 Position값을 (0,0,0)으로 세팅하고, CameraContainer의 Position값을 (0,1.7,0) 개인 프로젝트를 하면서 강의 내용을 참고하며 1인칭과 3인칭을 오가는 Camera를 만들었었는데,그땐 카메라가 플레이어의 오브젝트의 몸속이 보이는 오류가 있었지만, 큰 문제는 아닌 것 같아 넘어갔었는데 최종프로젝트를 진행하면서 해결 방법을 알게 되었다!!!!!!- Clipping Planes - Near 값을 기본 0.3에서 조금 더 적당한 값으로 늘려주면 완성!1인칭 은..

Today I Learn/25.04 2025.04.29

📅04/28 | TIL 3D Survival 재수강 - Singleton

오류 NullReference Error 내가 작업을 하면서 가장 많이 겪는 오류.... instance = null로 작성하여 대입을 해버림;if문 안에는 조건문이 들어가야하거늘!!!!!!!!왜 이런 기본적인 실수를... 했을까 ㅠ 그래서 instance = null이 되어버리고, 항상 null로 덮어쓰기 때문에,new GameObject("CharacterManager")가 만들어지는 로직이 실행되지 않는다. public static CharacterManager Instance{ get { if (instance == null) { instance = new GameObject("CharacterManager").AddComponent(); ..

Today I Learn/25.04 2025.04.28