본문 바로가기
카테고리 없음

로블록스 스튜디오 컨트롤 오류 해결법

by robydachi 2025. 7. 8.

게임 개발을 하다 보면 가장 당황스러운 순간 중 하나가 바로 플레이 테스트 중 캐릭터가 전혀 움직이지 않을 때입니다.
“코드 다 짰는데 왜 안 움직이지?”,
“방금까지 잘 되던 게 왜 또 멈췄지?”

 

로블록스 스튜디오 컨트롤 오류 해결법
로블록스 스튜디오 컨트롤 오류 해결법

 

 

이런 상황은 초보 개발자뿐 아니라 경험이 많은 개발자에게도 흔히 발생하는 문제입니다. 특히 Unity, Unreal Engine, Godot과 같은 게임 엔진에서는 입력 설정, 물리 엔진 충돌, 스크립트 에러 등 다양한 원인이 캐릭터 움직임 오류로 이어질 수 있습니다.

 

이번 글에서는 게임 플레이 테스트 중 캐릭터가 움직이지 않는 원인과 해결 방법을 총정리하여 소개해드립니다. 특히 Unity를 기준으로 설명하지만, 다른 엔진 사용자에게도 적용할 수 있는 일반적인 원리 위주로 다루었습니다.

입력(Input) 설정 오류

가장 흔한 문제는 입력 설정 누락 또는 잘못된 매핑입니다.
예를 들어 Unity에서는 Input Manager 또는 New Input System을 사용하며, 설정이 누락되면 키보드를 눌러도 아무 반응이 없습니다.

 

🛠 해결 방법

Unity 구 Input Manager 사용 시:
→ Edit > Project Settings > Input Manager에서 "Horizontal", "Vertical" 항목이 존재하는지 확인

New Input System 사용 시:
→ Input Actions 생성 여부 확인 및 PlayerInput 컴포넌트 연결 상태 확인
→ 이벤트 기반(Input Action) 연결이 올바르게 되었는지 검사

 

💡 팁: Input System을 바꿨다면 재시작 후 테스트! 간혹 반영이 안 되는 경우 있음

Rigidbody 또는 Collider 설정 문제

물리 기반 캐릭터 컨트롤러를 구현하는 경우, Rigidbody나 Collider가 없거나 잘못 설정되어 있으면 움직임 자체가 무효화됩니다. 특히 Rigidbody가 isKinematic 상태면 물리 기반 이동이 적용되지 않습니다.

 

🛠 해결 방법

캐릭터에 Rigidbody가 제대로 연결되어 있는지 확인

Rigidbody의 isKinematic이 필요한 상황인지 판단

충돌 체크: Collider(예: Capsule Collider)가 씬 안에서 바닥과 닿고 있는지 확인

계층 구조 상 Rigidbody가 부모, Collider가 자식으로 되어 있을 경우 충돌이 무효화될 수 있음

스크립트 로직 문제 (코드 오류)

코드 상에서 속도 값이 0으로 고정되어 있거나, 이동 조건이 잘못 걸려 있으면 아무 입력도 처리되지 않습니다.

 

🛠 확인 포인트

float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
Vector3 move = new Vector3(h, 0, v);
transform.Translate(move * speed * Time.deltaTime);