과제

[Unity,C#,3D]게임 개발 숙련 개인 과제 1일 차

leejiyoung0511 2025. 3. 4. 17:21

👩🏻‍💻오늘 할 일

  • Git연동
  • 기본 에셋 Import
  • 플레이어 이동, 점프

 

😵‍💫오늘의 트러블 슈팅

#1 URP 렌더링 문제

URP인 에셋을 Import 해서 배치를 해봤는데 핑크색으로 뜨는 문제를 발견했다.

 

패키지매니저에서 Universal RP을 Import 했는데도 렌더링에 문제가 있는 것 같았다.

이유를 찾아보니

Editor> ProjectSettings> Quality에서 RenderPipelineAsset이 none이었기 때문이었다!

 

제대로 설정해 주니 해결이 되었다!

#2 플레이어 이동

3D라서 내 컴퓨터가 과부하가 온 것일까...

velocity에 직접 이동값을 넣어줬더니 캐릭터가 순간이동 한 것처럼 움직였다.

AddForce로 구현하면 부드럽게 움직인다기에 코드를 수정해 줬다.

먼저 일단 가속도, 최대속도, 마찰력을 선언해 값을 넣어주었다.

    public float m_Drag = 5f;          //감속 (마찰력)
    public float m_Acceleration = 10f; //가속력
    public float m_MaxSpeed = 5f;      //최대 이동 속도

 

그리고 AddForce로 코드 수정

        //이동속도 일정하게 유지
        Vector3 movement = new Vector3(m_MovementInput.x, 0, m_MovementInput.y).normalized;

        // 현재 속도가 maxSpeed 이상이면 힘을 추가하지 않음
        if (m_Rigidbody.velocity.magnitude < m_MaxSpeed)
        {
            m_Rigidbody.AddForce(movement * m_Acceleration, ForceMode.Acceleration);
        }

 

전보다는 부드럽게 움직이기는 하지만 역시 노트북을 바꿔야 할 것 같다...

 

+ ForceMode종류

ForceMode.Force → 부드러운 지속적인 이동(자동차, 캐릭터 이동)
ForceMode.Acceleration → 질량 무시하고 일정한 가속(중력 없는 환경)
ForceMode.Impulse → 순간적인 힘 (점프, 폭발, 충돌)
ForceMode.VelocityChange → 즉각적인 속도 변경 (대시, 순간이동, 총알 발사)

 

+3/6 플레이어가 보는 방향으로 이동하지 않는 버그가 있어서 강의에 나온 코드로 다시 수정을 하였다...