728x90

내일배움캠프 68

내일배움캠프 Unity - TIL : 25.02.28

오늘 학습한 내용1) 유료 에셋 관리의 문제 인식 프로젝트 생성 시 유료 에셋을 어떻게 관리할지에 대한 고민이 있었습니다.예를 들어,유료 에셋을 처음부터 모두 커밋한 후 나중에 .gitignore를 적용하는 방법,또는 프로젝트 시작 전부터 폴더에 .gitignore를 설정하고 유료 에셋은 별도로 메일 등으로 주고받는 방법 등이 있습니다.문제 및 해결 과정문제프로젝트 완료 후 각 브랜치에 대해 별도로 .gitignore 작업을 진행해야 하니, 관리가 매우 번거롭다는 문제가 있었습니다.  시도한 해결 방법초기 설정 단계에서 유료 에셋에 대한 .gitignore를 적용하는 방법과, 유료 에셋을 별도 경로로 관리하는 방법을 고려하였습니다.다른 방법으론 메인 브랜치에만 .gitignore를 설정하고 다른 브랜치는..

내일배움캠프 2025.02.28

내일배움캠프 Unity - TIL : 25.02.27

오늘 학습한 내용Cinemachine탑다운 방식의 게임에서 플레이어를 따라가는 Cinemachine Virtual Camera를 설정했으나, 기본 설정으로 인해 카메라가 모든 방향으로 움직여 원하는 동작이 아니었습니다. 특히, 궁수의 전설처럼 좌우 이동만 제한하고자 했습니다. 문제 및 해결 과정문제 (카메라 이동 범위 제어)Cinemachine Virtual Camera가 기본적으로 모든 방향으로 움직여, 상하 이동도 포함되어 버렸습니다.  시도한 해결 방법 상하축 이동 제한은 Virtual Camera의 Body 옵션 중 Framing Transposer를 활용하여 설정하였습니다.좌우 카메라 이동 영역은 Confiner 2D를 이용해 지정함으로써, 원하는 범위 내에서만 카메라가 움직이도록 제어하였습니다..

내일배움캠프 2025.02.27

내일배움캠프 Unity - TIL : 25.02.25

오늘 학습한 내용OnValidate 메서드 OnValidate는 Unity에서 컴파일 시점에 작동하는 특별한 메서드로 스크립트의 인스펙터 값이 변경될 때 자동으로 호출됩니다.이를 활용하면 GetComponent와 같은 초기화 작업을 보다 효율적으로 수행할 수 있어 스크립트의 상태를 검증하고 자동으로 설정할 수 있습니다. 새롭게 알게 된 점OnValidate를 통한 코드 안정성 강화 OnValidate 메서드를 사용하면 에디터에서 스크립트의 값이 변경될 때 자동으로 초기화 작업을 실행할 수 있어 이를 이용하여 씬 작업을 할때 자동으로 인스펙터에 참조값을 넣어 코드의 안정성과 효율성이 크게 향상된다는 점을 깨달았습니다. 앞으로의 계획 프로젝트에서 OnValidate를 활용하여 코드 초기화 및 값 검증 과..

내일배움캠프 2025.02.25

내일배움캠프 Unity - TIL : 25.02.24

오늘 학습한 내용TSV에서 JSON으로 변환의 장점 구글 스프레드시트 데이터를 TSV 형식으로 받으면 헤더를 왼쪽부터 0, 1, 2, 3 등 숫자로 구분해야 하는 등 불편한 점이 있었지만 TSV 데이터를 바로 전달하는 대신 JSON으로 변환하면 데이터의 구조가 명확해지고 일관된 포맷을 유지할 수 있어 여러 문제가 해결된다는 점을 배웠습니다. 문제 및 해결 과정문제TSV 형식은 시트의 헤더를 단순히 왼쪽부터 0, 1, 2, 3 등으로 구분해야 하며, 데이터의 구조와 타입 정보가 부족하여, 정보 전달 시 혼란과 오류가 발생할 가능성이 있었습니다.  시도한 해결 방법TSV 데이터를 JSON으로 변환하는 과정을 도입하였습니다. 이를 통해 각 열의 헤더와 데이터를 명확하게 매핑하고, 데이터 구조를 직관적으로 표현..

내일배움캠프 2025.02.24

내일배움캠프 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
728x90