[Unity3D] 플레이어를 만들 때 필요한 이론

김소연·2025년 3월 3일

Unity 3D에서 플레이어를 만들 때 필요한 이론

  1. 스카이박스
  2. RigidBody-ForceMode
  3. Raycast
  4. InputSystem
  1. 스카이 박스

2. Rigid bodyForceMode

다양한 힘 적용 방식

ForceMode 종류는 다음과 같습니다:

  1. Force: 힘을 지속적으로 적용합니다.

    • Rigidbody.AddForce(Vector3 force, ForceMode.Force);
  2. Acceleration: 가속도를 적용합니다. 이전 힘의 누적에 따라서 점진적으로 더 빠르게 움직이게 됩니다.

    • Rigidbody.AddForce(Vector3 force, ForceMode.Acceleration);
  3. Impulse: 순간적인 힘을 적용합니다. 짧은 시간에 갑작스러운 움직임이 발생합니다.
    (ex. 점프)
    - Rigidbody.AddForce(Vector3 force, ForceMode.Impulse);

  4. VelocityChange: 변화하는 속도를 적용합니다. 물체의 현재 속도를 변경하면서 움직입니다.
    (ex. 걷다가 달리려고 하는 순간)
    - Rigidbody.AddForce(Vector3 force, ForceMode.VelocityChange);

  5. RAYCAST
    COLLIDER와 같은 기능
    RAY(가상의 광선), 의 방향과 길이를 결정해, 광선에 맞은 물체의 여부를 판단

  • 어디를 기준으로 광선을 뽑아내는지 정할 수 있음

    Ray - 직선의 시작점(origin)과 방향(direction)
    Ray ray = new Ray(transform.position, transform.forward); // 오브젝트
    Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); // 카메라 중심
    Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // 마우스

  • Raycast 광선에 맞은 물체의 정보를 꺼내오는 방법, 맞으면 TRUE, 없으면 FALSE 반환
    눈에 보이지 않는 광선(Ray)에 맞은 물체가 무엇인지 여부를 판단한 뒤 여러 가지 후처리를 하는 방식.

    Ray, RaycastHit, MaxDistance, LayerMask 등의 옵션

  • RaycashHit 우리가 원하는 오브젝트의 정보가 담겨 있는 곳
    Raycast에 의해 검출된 객체의 정보가 담겨있다.

    RaycastHit.point - 레이캐스팅이 감지된 위치
    RaycastHit.distance - Ray의 원점에서 충돌 지점까지의 거리
    RaycastHit.transform - 충돌 객체의 transform에 대한 참조

  1. 인풋 시스템
    sendmessage vs InvokeEvent
    함수를 만들어야 한다 vs 인스펙터 상에 함수를 등록한다
    invoke C sharp Events 세부적인 조정 가능

0개의 댓글