스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록67 2024.08.14 TIL - UI Mask 구멍내기 부모가 내가 뚫을 구멍이다.구멍의 크기와 SourceImage를 지정한다.Mask 컴포넌트를 넣고, Show Mask Garphic은 끄기. 자식은 Width와 Height를 지정해줘도 되고 코드로 지정해줘도 된다.나는 캔버스의 크기를 가져와서 코드로 지정해줬다. using UnityEngine;using UnityEngine.Rendering;using UnityEngine.UI;public class CutoutMaskUI : Image{ public void SetToCanvasSize() { Canvas canvas = GetComponentInParent(); if (canvas != null) { RectTransform ca.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 8. 14. 2024.08.13 TIL - FontAsset 굽는 법, 최적화(용량 줄이기) 폰트 굽는법(Font Asset 만드는 법)Source Font File : Font 파일 넣기Sampling Point Size : Auto SizingPadding : 5Packing Method : FastAtlas Resolution : 4096 4096Character Set : Custom RangeCharacter Sequence :`32-126` : 알파벳 범위`44032-55203` : 한글 범위(받침 글자 포함)`12593-12643` : 한글인데 'ㅁ ㅏ'처럼 띄워쓰기된 글자들의 범위`8200-9900` : 특수문자 범위32-126,44032-55203,12593-12643,8200-9900Render Mode : SDFAA 최적화(용량 줄이기)Character Sequence 에서.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 8. 13. 2024.08.10 TIL - Update에서 코루틴 호출하기 VS 재귀로 호출하기 Update에서 코루틴 호출하기 public override void Execute() { base.Execute(); fsm.StartCoroutine(DetectClosestTargetCoroutine()); } private IEnumerator DetectClosestTargetCoroutine() { currentDetectionRadius = fsm.initialDetectionRadius; while (fsm.target == null && currentDetectionRadius 한 가지 알아두어야 할 점은 여기에서 Execute()는 Update에서 실행된다.최대 탐지 반경까지 찾지 못한 경우 Update에 의해.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 8. 10. 2024.08.01 TIL - 버섯커 램프 레벨업, 배달의 기사 성장탭 골드 소모식 버섯커의 램프를 레벨업할 때 골드를 소모하는데, 레벨마다 소모값이 다르다. 배달의 기사 성장탭의 경우에도 레벨에 따라 소모하는 골드량이 다르다. 이 계산식을 어떻게 할까 고민하다가 계차 수열 방식을 사용했다. public int CalculateLevelUpCost(int level) { // 계차 수열 방식으로 골드 소모량 계산 int goldCost = baseGoldCost + (level * (level + 1) / 2) * increaseRate; return goldCost; }예시:기본 골드 소모량: 100골드 증가율: 50레벨에 따른 골드 소모량:레벨 1: 100 + (1 * (1 + 1) / 2) * 50 = 150레벨 2: 100 +.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 8. 1. 2024.07.25 TIL - 면접 질문지 답변 작성해보기 0. 쿠키런 킹덤 1분 자기소개안녕하십니까. 저는 이번 쿠키런 킹덤 신입 채용에 지원하게 된 성지윤입니다.저는 곧 출시 예정인 픽셀몬 키우기라는 게임을 개발한 경험이 있습니다. 해당 게임을 만들면서, 기능 하나를 개발할 때마다 최적화와 개발 효율을 고려하여 적절한 기술을 선택했습니다. 실제로 구글 시트의 데이터를 수동으로 받아오는 작업이 번거로웠기 때문에, 변경사항을 자동으로 실시간 반영되도록 구현했습니다. 또한, 플레이어가 적을 탐색하는 로직을 구현할 때 세 가지 로직을 생각했고, 프로파일링을 통해 지표를 비교 분석하여 가장 성능이 좋았던 로직을 선택했습니다.쿠키런 킹덤에 입사하게 된다면, 타당한 근거를 바탕으로 기술 결정 의사를 내리고, 최적화를 고려하며, 유저들이 어떻게 하면 게임을 더 재밌고 편하.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 25. 2024.07.24 TIL - 이미지 꽉 차지 않게 원래 이미지 크기대로 설정하기(preserve aspect) 펫 슬롯에 이미지가 자동으로 꽉차게 설정되어 있다보니 찐빵같이 보인다. 이미지 컴포넌트에 있는 preserve aspect를 체크해준다. 그러면 원래 Sprite 이미지 크기대로 설정된다. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 24. 2024.07.11 TIL - 어드레서블 에셋(Addressable Asset) Resources 폴더장점사용하기에 편하다. `Resources.LoadAll` 등 Resources 폴더 안에 에셋들을 코드 한 줄로 불러올 수 있다. 단점1. apk 사이즈가 커진다. `Resources` 폴더에 있는 모든 파일은 게임 빌드에 포함되기 때문이다.2. 앱 시작 시간이 길어진다. 런타임에 리소스를 로드하기 때문에 디스크 I/O가 발생해서 로딩 시간이 증가할 수 있다.3. 메모리 최적화 문제가 있다. `Resources.Load` 메서드로 리소스를 로드하면 메모리에 상주하게 되며, 수동으로 해제하지 않으면 메모리 누수가 발생할 수 있다.4. 플랫폼별 최적화가 불가능하다. 특정 플랫폼에서만 필요한 리소스를 포함하거나 제외하는 등의 최적화가 어렵다. `Resources` 폴더에 있는 모든 파일.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 11. 2024.07.09 TIL - StringBuilder, List 메모리 단편화 메모리 단편화란?메모리 단편화는 메모리 관리 시스템에서 가용 메모리 블록들이 작고 불규칙하게 분산되어 있는 상태를 의미한다. 이로 인해 메모리를 효율적으로 사용할 수 없게 되어 성능 저하가 발생할 수 있다. 메모리 단편화는 크게 두 가지 유형으로 나눌 수 있다. 1. 내부 단편화 (Internal Fragmentation)고정 크기의 메모리 블록을 할당할 때, 요청된 메모리보다 큰 블록이 할당되어 사용되지 않는 잔여 공간이 발생하는 경우이다. 이 잔여 공간이 바로 내부 단편화다.예를 들어, 64바이트의 메모리 블록을 할당했는데 실제로 필요한 메모리는 50바이트라면, 나머지 14바이트는 낭비된다. 2. 외부 단편화 (External Fragmentation)가변 크기의 메모리 블록을 할당할 때, 메모리 해.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 9. 2024.07.08 TIL - Rule Tile 유니티 타일맵을 만들 때 하나하나 찍어내는게 귀찮고, 효율이 좋지 않다.이럴 때 Rule Tile 기능을 사용하여 비교적 빠르고 쉽게 타일맵을 찍어낼 수 있다.우선 프로젝트창에서 우클릭으로 Rule Tile을 생성한다. + 버튼 클릭 대충 슥 그려줘도 이렇게 룰에 맞게 그려진다. 빨간색 X : 해당 방향으로 타일을 그릴 수 없음.초록색 화살표 : 해당 방향으로 타일을 그릴 수 있음. Tile Rule은 타일 팔레트에 드래그앤 드롭하여 생성하고, 기존처럼 타일 그리듯이 작업하면 된다. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 8. 2024.07.05 TIL - 최적화, 현재 켜져있는 적 몬스터 객체들로 탐색 VS 범위 탐색 현재 켜져있는 적 몬스터 객체들로 탐색해당 프로젝트에서는 오브젝트 풀링으로 적 몬스터들을 관리하고 있다.플레이어가 적을 탐지하여 해당 적에게 이동하기 위한 로직으로 썼던 첫 번째 방법은 현재 하이라키에 켜져있는 적 몬스터 객체들을 탐색하는 것이었다.위의 영상에서 FPS를 보면 210~230정도 나온다.이걸 인지해두고 다음으로 범위 탐색 방법을 보겠다. 범위 탐색플레이어 기준으로 초기 반경 4.0f를 시작으로 적 몬스터를 감지할 때까지 점점 탐색 반경이 늘어난다.2.0f씩 반경이 커지고 최대 반경은 10.0f로 설정했다.최대 반경에 도달했는데도 찾지 못하면 다시 초기 반경의 값으로 셋팅된다.그래서 영상을 보면 스폰된 몬스터가 나타나기 전 상황에서 최대 반경까지 갔다가 다시 초기 반경으로 돌아간다.이후 .. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 5. 2024.07.04 TIL - 유니티 시네머신 개요 Virtual Camera 시네머신은 새로운 카메라를 생성하지 않는다.Virtual Camera는 Unity 카메라를 이동 및 회전하고 해당 설정을 제어한다. Unity 카메라와 별개의 게임 오브젝트이며, 독립적으로 동작한다. 또한 서로 중첩되어 있지 않다. Cinemachine brain 시네머신 브레인은 Unity 카메라 자체의 컴포넌트이다. 시네머신 브레인은 씬에 있는 액티브 가상 카메라를 모두 모니터링한다. 카메라 이동 및 조준가상 카메라의 Body 프로퍼티를 사용하여 씬에서 움직이는 방식을 지정할 수 있다. 회전 방식을 지정하려면 Aim 프로퍼티를 사용한다. 가상 카메라의 타겟`Follow` 타겟 : 가상 카메라가 함께 따라 이동할 게임 오브젝트를 지정한다.`Look At` 타겟 : 게임 오브젝.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 4. 2024.07.03 TIL - 캐릭터 컨트롤러 VS Rigidbody 캐릭터 컨트롤러(Character Controller) 캐릭터 컨트롤러(Character Controller)는 Unity에서 캐릭터나 플레이어의 움직임과 충돌을 관리하기 위해 사용되는 컴포넌트다. 이 컴포넌트는 물리 엔진이 아닌 캐릭터의 움직임을 프레임 기반으로 처리하므로, 주로 3D 캐릭터를 제어하는 데 사용된다. 캐릭터 컨트롤러의 주요 기능과 특징은 다음과 같다:캐릭터 이동: 캐릭터 컨트롤러는 단순한 이동을 쉽게 구현할 수 있도록 메서드를 제공한다. 주로 이동 방향과 이동 속력을 설정하여 캐릭터를 움직이게 한다.중력 적용: 캐릭터 컨트롤러는 Rigidbody 물리의 도움을 받기 힘들기 때문에, 중력과 점프 기능 등을 직접 개발해야 한다. 수평 방향의 이동과 경사면 이동에는 강점이 있지만 수직 이동에.. 스파르타 게임개발종합반(Unity)/TIL - 본캠프 매일 공부 기록 2024. 7. 3. 이전 1 2 3 4 ··· 6 다음 반응형