unity (7) 썸네일형 리스트형 UNITY 게임개발트랙 - 내일배움캠프 76일차 TIL 내일배움캠프 76일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 객체를 이동할 때 벡터를 정규화(Nomarlized) 하는 이유에 대해 설명해주세요. 벡터를 정규화하는 가장 큰 이유는 이동속도를 균일하게 유지하기 위해서이다. 벡터를 정규화하면 방향은 유지되고 크기가 1인 단위벡터가 되는데, 이는 우리가 객체를 벡터의 크기와 상관없이 균일한 속도로 이동하고 싶을 때 큰 도움이 된다. 그 외에도 벡터를 정규화하여 물리연산에 사용하면 크기를 고려할 필요가 없으므로 성능 향상에 긍정적인 영향을 끼친다. 월드 스페이스(World Space)와 로컬 스페이스(Local Space)의 차이에 대해 설명해주세요. 월드 스페이스는 게임이나 3D 환경의 전체적인, 절대적인 좌표 시스템.. UNITY 게임개발트랙 - 내일배움캠프 74일차 TIL 내일배움캠프 74일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 오브젝트 풀링(Object Pooling)이 무엇이며, 어떻게 구현하는지 설명해주세요. 유니티에서 오브젝트를 생성하는 작업과 파괴하는 작업은 많은 리소스를 필요로 하는 무거운 작업이다. 때문에 이러한 작업을 최소화하기 위해, 오브젝트를 미리 여러개 만들어두고 필요할 때마다 꺼내서 사용하고 사용하지 않을 때 다시 넣어둠으로써 메모리를 절약하는 디자인 패턴이 바로 오브젝트 풀링이다. 유니티에서 오브젝트 풀링을 사용하는 방법은 크게 두 가지이다. 유니티에서 제공하는 오브젝트 풀 기능 사용 직접 구현 유니티에서 제공하는 오브젝트 풀을 사용하는 방법은 매우 간단하다. IObjectPool 필드를 선언하고, 필수구.. 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 게임개발트랙 - 내일배움캠프 55일차 TIL 내일배움캠프 55일차 TIL 오늘도 오전에 기술면접 예상질문을 풀어보고 팀 프로젝트 개발을 진행했다. 가비지 컬렉션 C#은 개발자가 메모리를 직접 관리할 필요가 없도록 메모리 관리를 자동화하기 위해 가비지 컬렉션 기능을 제공한다. 객체를 생성할 때 자동으로 메모리가 할당되는데, 해당 객체가 필요하지 않을 때, 가비지 컬렉터가 개발자 대신 할당된 메모리를 해제하는 작업을 수행한다. 더 이상 참조되지 않는 객체를 찾아서 자동으로 메모리를 해제하는 방식이다. 가비지 컬렉션이란 해당 작업을 의미하며, 이 작업을 수행하는 주체가 가비지 컬렉터이다. 팀 프로젝트 개발 - 절차적 맵 생성 : 맵 구조 다양화, 버그 수정 맵을 생성할 때, 한쪽 방향으로만 생성되는 버그가 있었다. 방 하나를 생성하면, 이전 방과 연결된.. UNITY 게임개발트랙 - 내일배움캠프 17일차 TIL 오늘도 어김없이 코드카타 후 팀 프로젝트 개발 마무리 및 디버깅을 진행했다. 오늘 푼 문제들 : 프로그래머스 lv.1 - 12919. 서울에서 김서방 찾기 문제 설명 String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다. 제한 사항 - seoul은 길이 1 이상, 1000 이하인 배열입니다. - seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다. - "Kim"은 반드시 seoul 안에 포함되어 있습니다. public class Solution { public string solution(string[.. UNITY 게임개발트랙 - 내일배움캠프 2일차 TIL 게임개발 종합반 3주차 강의를 수강했다. 아래는 StartScene을 만들고 Unity의 SceneManager를 통해 MainScene으로 이동하는 스크립트이다. 유니티에서 버튼을 생성하고 아래 스크랩트를 추가한 뒤, 버튼의 OnClick시 실행할 함수로 스크립트 안에 선언되어 있는 GameStart()메서드를 선택해주면 된다. using UnityEngine.SceneManagement; public void GameStart() { SceneManager.LoadScene("MainScene"); } 다음은 마우스의 x좌표를 가져오고, 자신의 y좌표는 유지하여, 마우스의 움직임에 따라 x좌표를 변화하는 스크립트이다. void Update() { Vector3 mousePos = Camera.main.. 이전 1 다음