2025/05 7

[Unity/TIL] - 인벤토리창 만들기

public void OnInventory(InputAction.CallbackContext context){ if (context.phase == InputActionPhase.Started) { inventory?.Invoke(); ToggleCursor(); }}CallbackContext는 Unity의 New Input System에서 입력 이벤트를 처리할 때 핵심적인 역할을 합니다.InputAction.CallbackContext는 입력 이벤트가 발생했을 때 그에 대한 모든 정보를 담고 있는 구조체입니다. CallbackContext란?CallbackContext는 Unity의 InputAction이 호출될 때, 입력의 상태, 값, 타이밍, 장치 등의 정..

카테고리 없음 2025.05.20

[Unity/TIL] - GetComponent

더보기3번째 팀프로젝트 진행하면서 가장 많이 본 오류.NullReferenceException: Object reference not set to an instance of an object값이 없다. Null이다. 연결이 안되어 있다. 오류를 해결하다보니 내가 GetComponent를 이상하게 쓰고 있다는 걸 알게됐다. 그래서 쓰는 TIL.===== GetComponent()이 스크립트가 붙어있는 게임오브젝트에서 컴포넌트 T를 찾는다. (없으면 null 반환)Rigidbody2D rb = GetComponent(); GetComponent(문자열)안전성 떨어져서 거의 안 씀. 되도록이면 제네릭 방식 ()을 써야 함Component comp = GetComponent("PlayerController");..

카테고리 없음 2025.05.19

[Unity/TIL] - 맵에 아이템 배치하기

맵에 아이템을 배치해야 하는데 오브젝트를 계속 복제해서 배치하기엔 성능저하가 올 것 같아 다른 방법을 찾아보았다. 오브젝트 풀링자주 생성되고 삭제되는 GameObject를 미리 만들어두고 재사용하는 방식.Instantiate()와 Destroy()를 반복하면 성능 저하가 생기기 때문에,쿠키런처럼 골드, 몬스터, 이펙트 등이 자주 등장하는 게임에선 풀링이 필수다. 오브젝트 풀링이란? 오브젝트를 담아두는 오브젝트 풀을 생성한다.필요할 때 오브젝트 풀에 있는 오브젝트를 빌린다.오브젝트 풀은 모든 오브젝트를 다 빌려줘서 더이상 빌려줄게 없을 때에만새로운 오브젝트를 생성해서 꺼내준다. 다 쓰면 다시 오브젝트 풀에 반환한다. (오브젝트를 파괴하지 않음) 출처 : 베르의 게임개발 유튜브 📌 풀링을 사용하지 않을..

카테고리 없음 2025.05.12

[Unity/TIL] - Vector3.Lerp / Layer충돌관리 / 맵 끼임 버그 / Composite Collider

함수 안에서 선언된 변수는 함수 안에서만 쓸 수 있다.만약다른 함수에서도 사용하고 싶다면함수 바깥에서클래스의 멤버변수로 선언해야한다. Vector3.LerpVector3.Lerp는 두 벡터(Vector3) 사이를 부드럽게 이동하는 함수.캐릭터나 카메라 이동, 스케일 변경 등 부드러운 전환(보간)에 자주 사용.Vector3.Lerp(Vector3 시작위치, Vector3 목표위치, float 보간값); 땅에 닿으면 점프횟수 초기화Player 아래에 빈 오브젝트 GroundCheck를 만든다.GroundCheck가 Ground 레이어가 붙어있는 오브젝트에 닿으면 점프횟수가 초기화된다.public Transform groundCheck;public float groundCheckRadius = 0.2f;p..

카테고리 없음 2025.05.11

[Unity/TIL] - Header / GetChild / enum / Effects-ParticleSystem

Header인스펙터(Inspector) 창에서 변수 그룹 위에 제목을 표시해주는 애트리뷰트(Attribute) transform.GetChild(index)트랜스폼(Transform) 안에 있는 자식 오브젝트 중에서,특정 인덱스에 해당하는 자식을 가져오는 함수.Transform child = transform.GetChild(0); 현재 오브젝트의 첫 번째 자식 오브젝트를 가져온다.반환되는 타입은 Transform.Player (부모)├── Weapon (자식 0)├── Hat (자식 1) 이런 구조일 때Transform firstchild = transform.GetChild(0);Debug.Log(firstChild.name);=> "Weapon" GetChild(1)은 => ..

카테고리 없음 2025.05.09

[Unity/TIL] - 4주차 Unity입문 트러블슈팅

1. MainCamera 배경색이 화면을 덮음. - target을 따라다니는 카메라를 만들었는데- 플레이해보면 MainCamera에 지정된 Color가 화면을 덮음 =>z 포지션이 타겟과 동일해져서 그렇다.MainCamaera의 z 포지션 -10을 유지시켜준다.target의 x,y 포지션만 동일하게 만든다. 2. 씬을 불러오지 못하는 문제 ❗Scene 'MiniGameScene' couldn't be loaded because it has not been added to the build settings or the AssetBundle has not been loaded. 라는 오류가 뜨며 씬을 불러오지 못했다. =>File - Build Settings에 들어가서 씬을 추가해주니 해결되었다. ..

[Unity/TIL] - 맵 그리기(타일맵)

강의에서 가장 재밌었던 맵 만들기. 타일맵(Tilemap)이란?2D 게임 개발에서 격자 기반 맵(Grid-Based Map) 을 쉽게 생성하고 관리할 수 있는 기능.타일(Tile)이라는 작은 사각형 조각들을 사용하여 게임 맵을 효율적으로 구성할 수 있다. 맵 그리기 빈 오브젝트에 그리드 컴포넌트를 추가해준다. 그러면 씬뷰에 격자무늬가 생긴다. 그리드 안에 맵을 구성할 요소들을 추가해준다.2D Object - Tilemap - Rectangular Tilemap Renderer의 Order in Layer을 변경해준다. Floor , Collision - Back - Front 0 - 10 - 200 씬뷰의 오른쪽에 있는 Open Tile Palette를 누른다. 또는 Window - 2D ..