Unity/캐릭터 4

캐릭터와 오브젝트 상호작용(Raycast, public Interface IInteractable 코드 사용)

캐릭터와 오브젝트가 상호작용하기 위해선 Raycast 기능을 사용해야 한다. ● Raycast란?- unity에서 제공하는 강력한 물리 시스템 기능 중 하나로, 특정 방향으로 가상의 광선(Ray)를 쏘아 충돌한 오브젝트를 가지하는 기능 ※ 기본 구조 Physics.Raycast(시작점, 방향, 충돌체 저장, 거리(, +특정 레이어))Physics.Raycast(player.transform.position, player.transform.forward, out hit, 10f(, +targetLayer))  ※ 알아야할 코드들//✔ Ray 시각화 하기Debug.DrawRay(player.transform.position, player.transform.forward*5f, Color.red, 1f);//..

Unity/캐릭터 2025.03.19

캐릭터 이동 구현 (Character Controller)

1. 컴포넌트 세팅 Slope Limit (기울기 제한) 캐릭터가 올라갈 수 있는 최대 경사각을 설정- 45로 설정하면 45도 이상의 경사면은 올라가지 못함.Step Offset (계단 높이 보정) 해당 값 이하의 높이를 자동으로 넘을 수 있도록 설정 - 플레이어가 자잘한 장애물에 걸리지 않게 해줌. Skin Width (스킨 두께) 콜라이더 표면에서 충돌을 감지하는 버퍼 거리- 너무 작은 값이면 벽에 박거나 충돌 버그 발생 / 너무 크면 충돌이 이상하게 감지될 수 있음. Min Move Distance (최소 이동 거리) 플레이어가 최소한으로 움직여야 적용되는 거리- 너무 작으면 이동 감지가 너무 자주 발생하여 성능에 영향Center (중심 위치) Character Controller의 중심 위치를 설..

Unity/캐릭터 2025.03.19

캐릭터 이동 구현 종류 (Character Controller / Rigidbody)

캐릭터 이동을 구현하는 방법은 여러가지가 있겠지만 나는 크게 2가지로 나누어봤다.  Character Controller 컴포넌트를 사용하는 경우Rigidbody 컴포넌트를 사용하는 경우적용 대상●  FPS●  3D 탐색형 게임● 플랫폼 게임● 물리 기반 게임● 레이싱 게임● 스포츠 게임핵심 특징- 이동을 Move() 메서드로 직접 제어- 충돌 감지는 가능하지만 물리 반응(튕기기 미끄러짐 등)X- 중력과 점프는 직접 코드로 구현- AddForce()를 통해 물리 엔진을 활용하여 자연스러운 가속, 감속 구현 가능- 중력, 마찰력, 충돌 반응을 자동으로 처리장점● 정확하고 예측 가능한 움직임 가능- 이동이 Move() 메서드로 처리 되기 때문에 불안정한 물리 충돌 X - 정확한 경로로 이동해야 하는 게임에 ..

Unity/캐릭터 2025.03.19

캐릭터 이동(Input System)

Input System의 핵심 개념 ● Action(액션) : 게임 내의 행동, 동작을 의미  ▪ 캐릭터의 이동, 회전, 점프, 공격, 방어 등이 모두 Action에 해당  ▪ 액션들에 해당하는 실제 매핑할 조작 방법을 정의 : 키보드, 마우스 등 정의● Binding : Action을 실제 물리적인 입력 장치와 매핑하는 것을 말함  1. 첫번째 방법 : 레거시 Input 클래스키보드, 마우스, 터치, 게임 패드와 같은 외부 입력 장치의 입력 값을 미리 정의해두고 코드에 직접 해당 디바이스로부터 입력값이 있는지를 확인하는 방식ex)float h=Input.GetAxis("Horizontal"); 문제점 : 다양한 입력 장치로의 전환의 어려움ex)게임패드/모바일 디바이스/햅틱 디바이스 등◦ 이동 및 점프와..

Unity/캐릭터 2024.10.26