분류 전체보기 (77) 썸네일형 리스트형 UNITY 게임개발트랙 - 내일배움캠프 70일차 TIL 내일배움캠프 70일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. Unity 오브젝트가 다양하게 씬에 올라와 있다면 동시에 시작되고 무엇이 먼저 초기화 되는지 알 수 없을 수 있는데, 프로젝트에서 코드를 만들 때 이에 대해 고민하고 해결해본 경험이 있다면 설명해주세요. 플레이어의 스탯을 관리하는 부분과 움직임을 관리하는 부분을 따로 만들어두었는데, 움직임을 관리하는 부분에서 플레이어 스탯의 값 중 일부를 사용해야 했습니다. 그래서 플레이어 스탯 중 움직임에 필요한 값들은 Awake 함수 안에서 빠르게 초기화해주고 나머지는 Start에서 초기화를 진행해주었고, 움직임을 관리하는 부분에서는 Start 함수 안에서 플레이어 스탯의 값을 가져와서 캐싱해둘 수 있도록 했습니다... UNITY 게임개발트랙 - 내일배움캠프 69일차 TIL 내일배움캠프 69일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. MVC 모델이란? MVC 패턴이란 Model-View-Controller의 약자로, 기능을 세 가지 역할로 구분한 디자인 패턴입니다. 사용자가 컨트롤러를 조작하면 컨트롤러는 모델을 통해 데이터를 가져오고, 그 데이터를 바탕으로 뷰를 통해 시각적 표현을 제어하여 사용자에게 전달합니다. MVC 패턴을 성공적으로 사용하면 비즈니스 로직과 UI 로직을 분리하여 유지보수를 독립적으로 수행할 수 있다. 또한 모델과 뷰가 다른 컴포넌트들에 종속되지 않아 기능의 확장성, 유연성에 유리하다. 현재 인벤토리 시스템을 개발하고 있는데, 인벤토리 UI 에서 모든 기능을 담당하고 있어서 추후 유지보수시 어려움이 발생할 수 있기.. UNITY 게임개발트랙 - 내일배움캠프 68일차 TIL 내일배움캠프 68일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 오버로딩과 오버라이딩 오버로딩 : 하나의 메서드를 여러 가지 형태로 구현하는 것을 말한다. 같은 이름의 메서드를 매개변수의 개수나 타입을 다르게 하여 정의할 수 있다. 오버라이딩 : 상속을 통해 기반 클래스에서 물려받은 메서드를 파생 클래스에서 재정의하는 것을 말한다. 오버라이딩을 하게 되면 기반 클래스의 메서드보다 파생 클래스에서 재정의된 메서드가 우선시된다. 객체 지향 프로그래밍에서 다형성을 구현하기 위해 사용된다. 인터페이스와 추상클래스 인터페이스와 추상 클래스 모두 상속을 통해 구체화 및 구현하는 과정이 필수적이다. 둘 다 자체적으로는 객체 생성이 불가능하다. 인터페이스는 메서드만 선언할 수 있고.. UNITY 게임개발트랙 - 내일배움캠프 67일차 TIL 내일배움캠프 67일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 자료구조의 종류 배열, 동적 배열, 리스트, 해시셋, 큐, 스택, 해시테이블, 딕셔너리 등이 있다. 배열 : 순서가 있고 길이가 정해진 데이터의 집합 동적 배열 : 순서가 있고 배열의 크기가 변할 수 있는 데이터의 집합 리스트 : 순서가 있고 삽입 삭제가 가능한 데이터의 집합 해시셋 : 순서가 없고 해시값을 쓰는 고유한 데이터의 집합 큐 : 선입 선출의 데이터의 집합이고 스택은 후입 선출의 데이터의 집합 해시테이블 : 해시 값을 쓰는 키 값과 그에 따른 value 값의 논 제너릭 타입의 집합 딕셔너리 : 해시 값을 쓰는 키 값과 그에 따른 value 값의 제너릭 타입의 집합 각 자료구조는 좋고 나쁘고 보.. UNITY 게임개발트랙 - 내일배움캠프 66일차 TIL 내일배움캠프 66일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 선택정렬과 버블 정렬 선택 정렬 : 주어진 배열에서 최솟값을 찾고, 그 최솟값을 맨 앞값과 바꾸는 과정을 반복하는 정렬 알고리즘이다. 버블 정렬 : 인접한 두 개읜 원소를 비교해서 자리를 교환하는 것을 반복하는 방식으로, 해당 과정이 끝나면 가장 크거나 작은 원소가 마지막 자리로 위치한다. 둘다 시간복잡도는 최악과 최선 상관없이 O(n^2)이어서 대중적으로 잘 쓰이는 정렬 방식은 아니다. public static void BubbleSort(int[] arr) { int n = arr.Length; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - i.. UNITY 게임개발트랙 - 내일배움캠프 65일차 TIL 내일배움캠프 65일차 TIL 오늘은 플레이어의 인벤토리를 구현하고자 했다. Inventory의 구조에 대한 고민 인벤토리의 구조를 어떻게 할지에 대한 고민이 많았다. 궁극적으로는 무기, 장비, 기타 아이템들의 세부 정보를 확인하고 장착하는 기능과, 기타 아이템의 경우 장착한 아이템을 던질 수 있어야 하기 때문에, 아이템 GameObject 자체를 가지고 있도록 하려고 했었다. 하지만 맵에 있는 아이템 오브젝트를 플레이어와의 상호작용을 통해 Inventory에 추가하는 테스트를 해보았을 때, 맵에 존재하는 아이템 오브젝트를 파괴할 경우 Missing Reference 에러가 발생했다. 이 때의 인벤토리는 ItemType을 Key로, 그리고 각 ItemType의 아이템 오브젝트를 담는 List를 Value로.. UNITY 게임개발트랙 - 내일배움캠프 64일차 TIL 내일배움캠프 64일차 TIL 오늘은 최종 프로젝트 중간발표회가 있었다. 다른 팀의 프로젝트와 진행상황, 그리고 사용된 기술스택과 겪은 다양한 문제들을 간접적으로나마 접할 수 있어서 도움이 되었다. 현재 프로젝트에 미니맵 기능을 어떻게 구현할지 고민하고 있었는데, 다른 팀들의 몇몇 프로젝트를 참고해보니 RenderTexture라는 기술을 사용하면 될 것 같다. 우리 팀의 경우는 다른 팀에 비해 개발 속도가 빠른 편이어서, 현재까지의 진행상황을 돌아보고 리팩토링을 거친 뒤, 앞으로 개발할 기능들을 구체화하여 정리하고 분담하는 시간을 가졌다. UNITY 게임개발트랙 - 내일배움캠프 63일차 TIL 내일배움캠프 63일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 팀 프로젝트 개발 - 금주 계획 회고 이번주는 대부분 MVP 구현을 위해 시간을 많이 할애했다. 새로 추가한 기능은, 이벤트, 옵저버 패턴, 람다를 이용해서 플레이어의 움직임과 애니메이션 변경을 인풋 시스템을 사용하여 특정 인풋을 받았을 때 콜백을 받아서 움직임과 애니메이션 변경이 일어나도록 구현했다. 콜백을 받아서 실행되는 메서드는 해당 부분밖에 쓰이지 않아서 람다식으로 구성하여 가독성을 높였다. using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Input.. 이전 1 2 3 4 5 ··· 10 다음