본문 바로가기

Unity49

Unity의 FixedUpdate, Update, LateUpdate 완전 이해 1. 세 가지 함수의 역할 * FixedUpdate() - 물리 연산 루프 (Time.fixedDeltaTime 간격) Rigidbody 이동, AddForce, 충돌 계산 * Update() - 프레임 루프 (모니터 주사율 기준) 입력 처리, 일반 Transform 이동 * LateUpdate() - 렌더 직전 카메라 추적, 후처리, 위치 보정 2. 실행 순서 요약FixedUpdate (0~N회) → Update → LateUpdate → RenderUnity는 물리 루프(FixedUpdate) 와 그래픽 루프(Update) 를 분리해서 서로 다른 속도로 독립적으로 실행합니다. * FixedUpdate() : 일정한 물리 시간 단위로 반복 * Update() : 프레임마다 한 번씩 * L.. 2025. 10. 31.
Cinemachine Camera : Dead Zone, Hard Limits, Damping Unity를 사용하다 보면 Inspector 창에 작게 붙어 있는 ‘?’ 마크를 본 적이 있을 겁니다.평소엔 무심코 지나치기 쉬운 이 아이콘, 사실은 Unity 공식 매뉴얼 페이지로 바로 연결되는 기능입니다. 최근에 저는 Cinemachine Camera 의 Position Control 설정을 확인하던 중, ? 버튼을 눌러봤더니 해당 항목의 공식 문서가 브라우저에 바로 열리는 것을 확인했습니다. 덕분에 번거롭게 검색하지 않고도, 정확한 설명을 빠르게 확인할 수 있었습니다. Position Control : Position Composer Position Control 은 Tracking Target (추적 대상) 을 화면에서 어떤 위치에 둘 것인지 결정하는 기능입니다. 여기에는 여러 가지 선택할 수 .. 2025. 7. 27.
Rigidbody 를 사용하면서, transform 코드가 제대로 동작을 안할 때 Rigidbody 를 추가하고 물체를 움직이다 보면, 내가 작성한 코드랑 별개로 움직이는 느낌을 받게 됩니다. 이것은 유니티가 렌더링용 Transform과 물리 엔진이 다루는 Transform 을 별도로 관리하기 때문입니다. 이번 글에서는 이 둘의 관계와 내부 동작 원리에 대해 설명하고, 직접 이동, 회전시키고 싶을 때 어떻게 처리해야 하는지를 예제와 함께 다뤄보겠습니다. 우리가 흔히 쓰고 있는 Transform (렌더링용)transform.Translate(Vector3.forward * Time.deltaTime);transform.Rotate(Vector3.up * 90f * Time.deltaTime); 이 코드는 일반적으로 잘 동작합니다. 하지만 Rigidbody가 붙어 있으면 다음과 같은 어색.. 2025. 7. 16.
Cinemachine 카메라를 붙였더니 카메라가 말을 안 들어요 Unity 에서 Cinemachin 카메라를 처음 접하신 분들이라면, Main Camera 에 Cinemachine Camera 를 연결하면, main 카메라의 position이나 rotation 값이 변경되지 않아 당황스러울 때가 있습니다. 이번 글에서는 Cinemachine 카메라의 동작 원리와 올바른 설정 순서에 대해 알아보겠습니다. Main 카메라에서 Cinemachine 카메라로 제어권이 넘어감먼저, Main 카메라에 Cinemachine 카메라를 연결하면, 제어권을 Cinemachine 카메라에 넘기기 때문에, 그 때부터는 카메라의 위치나 회전 등은 Cinemachine 카메라에서 조정해 주어야 합니다.Cinemachine 에는 Procedural Components 라는 시스템이 있어서, 카.. 2025. 7. 16.
물리 공간과 오브젝트 공간에서의 물체 이동 물체의 이동을 처리할 때, 힘 (Force) 은 물리 공간에서 발생하는 사건이기 때문에 월드 좌표계를 기준으로 계산되며, 이동이나 회전은 (transform) 은 물체 자신의 움직임 이므로, 로컬 좌표계를 기준으로 계산됩니다. 이러한 개념을 이해하면 코드를 작성할 때, 한결 자연스러워질 것입니다. AddForce 는 월드 공간 기준이다 AddForce()는 "물리 엔진이 계산하는 힘(force)" 을 오브젝트에 적용하는 함수입니다.그리고 이 힘은 항상 월드 좌표계 기준으로 작동합니다. rb.AddForce(Vector3.up * 10f); 이 코드는 "월드에서 위쪽 (0,1,0) 방향으로 힘을 준다" 는 뜻입니다.즉, 오브젝트가 아무리 회전해 있어도, 항상 똑바로 위로 날아갑니다. 로컬 방향으로 힘을 .. 2025. 7. 14.
Input Sytem : InputAction 사용법 정리 InputAction 의 세 가지 이벤트Unity의 새로운 Input System에서 InputAction은 아래 세 가지 주요 이벤트를 제공합니다 • started : 키를 누르기 시작한 순간 호출됨. 키가 눌렸다는 의지를 감지한 시점으로, 실제 입력값이 0일 수도 있음 • performed : 입력이 의미 있는 값으로 들어왔을 때 호출됨. 보통 키가 완전히 눌렸을 때, 혹은 스틱이 어느 정도 이상 움직였을 때 발생 • canceled : 입력이 취소되었을 때 호출됨 (예: 키를 뗀 순간, 스틱을 원점으로 되돌린 경우 등) 일반 키보드에서는 started 이후 거의 동시에 performed 로 이어지지만, 스틱처럼 아날로그 장치에서는 미묘한 차이가 발생합니다. 따라서 만약 키보드만 다룬다면.. 2025. 7. 14.