본문 바로가기

전체 글

11월 8일 금요일 본 캠프 개발 일지 | 델리게이트 특강 📌 가볍게 정리해두고 주말에 복습하면서 더 채울 예정이다. 학습 내용  1. 델리게이트 1. 델리게이트 ✅ 델리게이트   델리게이트는 객체가 아닌 메서드를 참조하는 타입으로, C#의 경우 메서드 포인터라고 생각할 수 있다. 델리게이트를 사용하면 특정 메서드의 호출을 다른 코드에 전달하거나 대리하여 수행하는 게 가능하다.  즉, 메서드를 전달해주는 대리자! 쉽게 비서라고 생각할 수 있다. ✅ 사용방법 public delegate int MathOperation(int x, int y); 먼저 delegate 키워드를 사용해 직접 선언해야 한다. 한 델리게이트에 여러 메서드를 추가할 수 있으며, 이 경우 등록된 메서드가 순서대로 호출된다.public class Program{ public static.. 더보기
11월 7일 목요일 본 캠프 개발 일지 | 결국 못 정했조 팀 프로젝트 (end) 📌  숙련 주차 팀 프로젝트가 마무리 되었다. 필수 기능은 전부 구현했고, 선택 기능의 일부를 구현하는 것에 성공했다. 학습 내용  1. 몬스터 AI 2. 피드백 1. 몬스터AI ✅ UML    프로젝트를 할 때마다 상속/참조 관계나 클래스를 받아오는 처리가 헷갈렸는데 이번에 객체지향으로 프로그래밍 하면서 많이 이해하게 된 것 같다.   ✅ 몬스터 데이터 관리  몬스터 클래스에서 스탯 정보를 정의한 추상 클래스에서 상속받은 변수를 실체화하고, 생성 시 싱글톤으로 만들어진 몬스터 DB에서 해당 id에 맞는 데이터를 불러와 할당받으며, 몬스터 프리팹은 공통 컴포넌트를 포함하고 로드 시 ID에 맞는 모델과 내부 데이터를 불러와 개별적으로 설정된다. ✅ 몬스터 데이터 관리   6개의 상태를 enum으로 정의하.. 더보기
11월 6일 수요일 본 캠프 개발 일지 | 결국 못 정했조 팀 프로젝트 (2) 📌오늘은 디버깅하면서 발생한 오류를 가볍게 정리하려고 한다. 학습 내용  1. GetComponent를 찾을 수 없는 오류 2. Attack 함수가 무한으로 호출되는 오류 1. GetComponent를 찾을 수 없는 오류   저번에 베이직 반에서 겪었던 오류랑 맥락이 똑같았다.  초기화 될 때 아직 오브젝트가 생성되지 않았는데 자식 컴포넌트를 찾게 되면서 발생한 오류! Awake에 있던 GetComponentInChildren 코드를 Start로 옮겨주면서 해결되었다. 2. Attack 함수가 무한으로 호출되는 오류 public override void Attack() { Debug.Log("공격했다!"); if (_attackCoroutine == null) .. 더보기
11월 5일 화요일 본 캠프 개발 일지 | 결국 못 정했조 팀 프로젝트 📌 팀 프로젝트가 하루 남은 관계로 체크리스트만 가볍게 작성하려고 한다. 학습 내용  1. 작업 내용2. 오늘의 지식 + 3. 해야 할 작업1. 작업 내용✅ 몬스터  AI - attack, return 구현 ✅ 몬스터 데이터 시트 및 스크립트 생성 ✅ 몬스터 프리펩 정리 2. 오늘의 지식 +✅ 엑셀에서 데이터를 불러올 때 띄워쓰기까지 살필 것✅ 최적화를 위해 Update 말고 코루틴을 사용하는 방법 ✅ 기본 Data를 두고 다른 객체에서 사용하는 게 좋다 3. 해야 할 작업✅Item drop 함수 구현 ✅Attack 함수 오류 수정    3D가 처음이라서 그런지 힘들기보다 머리가 너무 아픈 프로젝트인 것 같다.  시각적인 요소보다 기능 구현에 초점을 두는 방향으로 꼼꼼하게 마무리 해야겠다. 더보기
11월 4일 월요일 Basic class | 코드 분석하기 (1) 📌 조금 더 꼼꼼하게 분석하기 위해서 블로그로 정리해보려고 한다. 학습 내용  1. AI 네비게이션 2. 적 AI 코드 분석하기 1. AI 네비게이션 2. 적 AI   기본적으로 몬스터 상태는 정지, 배회, 공격, 도망으로 구분된다. 플레이어와의 거리를 매 프레임마다 체크하면서 대기 상태(정지, 배회)에서 공격 상태로 전환되게 된다.  참고로 기능 중심으로 분석하기 위해서 애니메이션 코드는 정리하지 않을 예정이다.public enum AIState{ Idle, // 정지 Wandering, // 배회 Attacking, // 공격 Fleeing // }  먼저 enum 으로 AI 로직에 쓸 상태를 저장한다.  private void Start() { SetSt.. 더보기
10월 30일 수요일 본 캠프 개발 일지 | 개인 프로젝트 (end) 📌 개인 과제를 제출했다. 작업 시간은 3일 정도였고, 필수 기능만 구현하는 것에 성공했다. 강의 코드를 그대로 썼지만 강의를 최소 2번씩 보면서 코드를 이해하려고 많이 노력했다. 이번 작업물에선 따로 새롭게 구현한 게 없어서 해설 영상을 보면서 TIL을 작성하려고 한다.학습 내용  1. Look 구현 2. 체크리스트 1. Look 구현  private void LateUpdate() { if (canLook) { CameraLook(); } } public void OnLookInput(InputAction.CallbackContext context) { mouseDelta = context.ReadValue(); }.. 더보기
10월 28일 월요일 본 캠프 개발 일지 | 개인 프로젝트 (1) 📌개인 과제 진행 중! 오늘은 TIL로 쓰기엔 애매한 주제 뿐이라서 체크리스트로 대체하겠다. 학습 내용  1. 완료한 작업2. 내일 해야 할 작업3. 오늘의 지식 +  1. 완료한 작업 ✅ 플레이어 움직임 구현 ✅ 아이템 데이터 구현 ✅ 동적 환경 조사 코드 구현 ✅ 체력바 구현 ✅ 점프대 구현 2. 내일 해야 할 작업 ✅ (오전) 동적 환경 조사 UI 연결✅ (오전) 아이템 사용 적용✅ (오후) 3인칭 시점✅ (오후) 움직이는 플랫폼 구현 ✅ (오후) 장비 장착 구현  ✅ (오후) 다양한 아이템 구현 ✅ (오후) 추가 UI 구현 (인지도, 스테미나) 3. 오늘의 지식 +✅ 공통 분모가 있는데 역할이 다를 경우 인터페이스 뿐만 아니라 추상 클래스도 활용할 수 있다  추가 기능은 딱 저기까지만 구현할 예.. 더보기
10월 27일 일요일 본 캠프 개발 일지 | 객체지향 프로그래밍 특강 📌  개인 과제를 필수 기능 구현을 위해 강의에서 이해 되는 코드를 옮겨쓰는 와중, 아이템 데이터 관리를 앞두고 작업을 멈췄다. 코드의 뜻은 알아도 클래스 간의 연결, 즉 프로그래밍을 완벽히 숙지하지 못 한 게 마음에 걸렸기 때문이다. 제일 답답한 부분이기도 하고, 금요일에 10% 정도 알게 되었던 객체지향을 정리하기 위해 블로그를 켰다. ※ 주의: 틀린 거 많을 수도 있음. 주관적임.학습 내용  1. 객체지향 프로그래밍2. 객체지향 프로그래밍 설계하기3. 객체지향 프로그래밍 실전 4. 참고 자료1. 객체지향 프로그래밍  ✅ 절차지향과 객체지향이란? 절차지향: 프로그램을 일련의 단계적 절차나 함수의 흐름으로 구성하여 실행해 작업을 수행하기 위한 논리를 순차적으로 작성하는 방식 객체지향: 프로그램을 독립.. 더보기