728x90

내일배움캠프 44

내일배움캠프 Unity - TIL : 25.02.21

오늘 학습한 내용확장 메서드 C# 확장 메서드는 기존 클래스를 수정하지 않고도 새로운 메서드를 추가할 수 있는 기능으로 코드의 유연성과 재사용성을 크게 향상시킵니다. 확장 메서드를 사용하면 외부에서 해당 클래스의 기능을 확장할 수 있으므로 클래스의 원본 코드를 건드리지 않고도 새로운 기능을 손쉽게 구현할 수 있습니다. 예시 1) GameObject 확장 메서드public static T GetOrAddComponent(this GameObject gameObject) where T : MonoBehaviour{ var component = gameObject.GetComponent(); if (component == null) gameObject.AddComponent(); return..

내일배움캠프 2025.02.21

내일배움캠프 Unity - TIL : 25.02.20

오늘 학습한 내용 리팩토링 배경 기존 코드에서는 매니저 클래스가 과도한 역할을 담당하며, 여러 매니저 클래스 간의 의존성이 높아 유지보수가 어려운 문제가 있었습니다.특히 매니저 클래스가 직접 데이터를 관리하고 참조값을 들고 있었기 때문에 씬 전환 시 객체가 사라지면서 NullReferenceException 오류가 발생하는 문제가 발생했습니다.또한, Player 객체가 각 씬마다 수동으로 배치되어 공통된 데이터 공유가 어렵고 씬 전환 시 상태 유지가 어려운 문제도 있었습니다.이를 해결하기 위해 리포지토리 패턴을 적용하여 데이터를 체계적으로 관리하고, 각 클래스의 역할을 명확히 분리했습니다.문제 및 해결 과정문제1) GameManager의 역할 과다GameManager가 데이터 관리까지 담당하며 하나의 클..

내일배움캠프 2025.02.20

내일배움캠프 Unity - TIL : 25.02.18

오늘 학습한 내용1) 시네머신 타임라인 사용법 시네머신 타임라인의 기본 사용 방법에 대해 간략하게 학습하였습니다. 처음에는 시네마틱 트랙만을 사용하여 원하는 연출을 구현하려 했지만 기대한 결과를 얻지 못했습니다. 이후 애니메이션 트랙을 추가로 활용하여 원하는 연출을 구현할 수 있었습니다.문제 및 해결 과정1) 문제타임라인에서 시네마틱 트랙만 사용했을 때 원하는 연출 효과를 완벽하게 구현하기 어려웠습니다.  시도한 해결 방법애니메이션 트랙을 추가하여 시네마틱 트랙과 함께 사용함으로써 연출 효과를 보완하였습니다. 결과두 트랙을 같이 사용한 결과, 원하는 연출 효과를 성공적으로 구현할 수 있음을 확인하였습니다. 새롭게 알게 된 점다중 트랙 활용 시네머신 타임라인에서 시네마틱 트랙과 애니메이션 트랙을 함께 활용..

내일배움캠프 2025.02.18

내일배움캠프 Unity - TIL : 25.02.17

오늘 학습한 내용1) 대화 관련 구조 설계게임 내 대화 시스템의 흐름을 원활하게 하기 위해 대화 인터페이스와 데이터 처리를 효율적으로 관리할 수 있는 구조를 설계하였습니다. 2) 상호작용 관련 구조 설계 게임 오브젝트와의 상호작용을 보다 직관적으로 처리할 수 있도록 상호작용 로직을 분리하고 모듈화한 구조를 구현하고 있습니다.문제 및 해결 과정문제 (초기 구조 설계의 불명확함)기존에는 각 기능별 구조가 산발적으로 구현되어 유지보수와 확장이 어려웠습니다.  시도한 해결 방법 각 기능(대화, 상호작용)에 대해 독립적인 모듈을 설계하고 인터페이스와 클래스를 체계적으로 정의하여 구조를 재정비하였습니다. 결과구조가 명확해지면서 코드의 가독성과 확장성이 크게 향상되었음을 확인하였습니다. 새롭게 알게 된 점체계적인 구..

내일배움캠프 2025.02.17

내일배움캠프 Unity - TIL : 25.02.14

오늘 학습한 내용1) Mathf.Pingpong   Mathf.Pingpong 기능을 통해 주어진 범위 내에서 값이 반복적으로 변화하는 효과를 구현할 수 있음을 배웠으며, 이를 활용하면 애니메이션이나 UI 효과 등에서 자연스러운 반복 동작을 손쉽게 구현할 수 있다는 점이 인상적이었습니다.  2) UI 스크립팅 설계 개선 기존에 사용하던 UI 코딩 설계 방식은 응집성과 결합도 측면에서 한계가 있어 유지보수와 확장성이 부족했습니다. 이번 강의를 통해 소개된 새로운 UI 스크립팅 설계 방법을 학습하면서, 코드의 모듈화와 가독성, 재사용성이 크게 향상되어 유지보수가 용이해진다는 점을 확인하였습니다. 문제 및 해결 과정1) 문제 (Mathf.Pingpong)지금까지 Mathf.Pingpong의 존재를 몰라 원하..

내일배움캠프 2025.02.14

내일배움캠프 Unity - TIL : 25.02.13

오늘 학습한 내용1) 델리게이트 델리게이트는 메서드에 대한 참조를 저장하는 타입으로, 여러 메서드를 유연하게 호출할 수 있는 기능을 제공합니다.이벤트 처리나 콜백 메서드 구현 시 델리게이트를 활용하면 코드의 모듈화와 재사용성이 향상됨을 배웠습니다. 문제 및 해결 과정1) 문제 (델리게이트)기존 메서드를 직접 호출하거나 복잡한 조건문으로 여러 메서드를 처리하던 방식이 유지보수와 가독성이 어려웠습니다.  시도한 해결 방법델리게이트를 사용하여 메서드 참조를 저장하고 필요에 따라 동적으로 호출하는 방식을 적용해보았습니다. 결과코드의 유연성이 높아지고, 이벤트 처리 및 콜백 구현이 훨씬 간단해졌음을 확인하였습니다. 새롭게 알게 된 점델리게이트 활용 델리게이트를 통해 메서드를 간접 호출하면, 코드가 느슨하게 결합되..

내일배움캠프 2025.02.13

내일배움캠프 Unity - TIL : 25.02.12

오늘 학습한 내용1) 프로젝트 개발 몰입기한이 얼마 남지않은 프로젝트 개발에 집중하며 디버깅과 코드 최적화 작업을 진행하였습니다. 2) 코드 리팩토링 및 구조 개선: 기존 코드의 비효율적인 로직을 확인하고 모듈화를 진행하여 유지보수성과 가독성을 크게 향상시켰습니다.문제 및 해결 과정1) 문제 (코드 리팩토링)기존 코드에서 중복과 비효율적인 로직이 많아 유지보수와 확장이 어려웠던 문제가 있었습니다. 시도한 해결 방법코드 리팩토링을 통해 모듈화를 진행하고 불필요한 중복을 제거했습니다. 결과리팩토링을 진행한 코드 품질이 전반적으로 향상되었으며 프로젝트의 안정성과 유지보수성이 크게 개선되었음을 확인하였습니다.새롭게 알게 된 점리팩토링 및 모듈화의 중요성코드 리팩토링과 모듈화가 프로젝트 전반의 품질과 협업 효율성..

내일배움캠프 2025.02.12

내일배움캠프 Unity - TIL : 25.02.11

오늘 학습한 내용1) Enum의 모든 값 순회 및 초기화 foreach (EMonsterType type in Enum.GetValues(typeof(EMonsterType))){ monsterSkills[type] = new List();}위 코드를 통해, Enum에 정의된 모든 값을 순회하여 각 값에 대해 리스트를 초기화할 수 있음을 배웠습니다. 2) 문자열을 Enum으로 변환하기 if (!Enum.TryParse(skillData["MonsterType"].ToString(), out EMonsterType monsterType))이 코드를 통해, 문자열 데이터를 해당 Enum 값으로 파싱할 수 있다는 것을 처음 알게 되었습니다.문제 및 해결 과정1) 문제 (Enum의 모든 값 순회 및 초기화..

내일배움캠프 2025.02.11

내일배움캠프 Unity - TIL : 25.02.10

오늘 학습한 내용1) Git Merge 충돌 해결오늘 dev 브랜치를 현재 작업 중인 브랜치로 머지하는 과정에서 충돌이 발생하였습니다.아래의 두가지 옵션을 통해 충돌 해결을 할 수 있었지만 처음 겪어보는 상황이라 정확히 어떤 옵션을 선택해야하는지 잘 몰랐습니다."Use the modified file from Csj-dungeonResult"현재 브랜치에서 수정된 파일 버전을 적용하여 충돌을 해결하는 옵션입니다."Do not include this file on dev"dev 브랜치의 해당 파일을 포함시키지 않고, 현재 작업 중인 브랜치의 파일 상태를 유지하는 옵션입니다.이 경험을 통해 Git Merge 충돌 해결 과정과 각 옵션의 의미를 명확하게 이해할 수 있게 되었습니다.문제 및 해결 과정1) 문제 ..

내일배움캠프 2025.02.10

내일배움캠프 Unity - TIL : 25.02.07

오늘 학습한 내용1) 개인과제 피드백 매니저 인스턴스 남발 문제제출한 개인과제에서 매니저 인스턴스를 과도하게 생성한 부분에 대해 피드백을 받았습니다. 이를 통해 인스턴스 관리의 중요성과 자원의 효율적인 활용에 대해 다시 한 번 고민하게 되었습니다. 시트 데이터 파싱시트로부터 받은 데이터를 직접 파싱하여 클래스에 맞게 데이터를 구성하는 방식이 좋았지만, 모든 클래스를 위해 개별적으로 파싱 코드를 구현해야 하는 점이 상당히 번거롭고 복잡하다는 의견이 있었습니다. 이를 위해 JSON으로 파싱을 처리하면, 코드가 더 깔끔해지고 유지보수가 용이할 수 있다는 피드백을 받았습니다. 2) 디버깅 방법 조사식 작업 실행창 활용디버깅 시 조사식 작업 실행창을 활용하여, 코드 실행 중 변수나 상태를 실시간으로 확인할 수 있..

내일배움캠프 2025.02.07
728x90