4-1. 2조 Rigidbody ForceMode, Ray, Input System

keubung·2024년 10월 23일

3DGame

1. Rigidbody ForceMode

  1. Force : 지속적으로 일정한 힘을 적용
  2. Acceleration : 가속도를 적용
  3. Impulse : 짧은 시간에 순간적인 힘을 적용(점프 - 땅을 순간적인 힘으로 민다.)
  4. VelocityChange : 변화하는 속도를 적용(걷기 -> 달리기)

    - Rigidbody.AddForce(Vector3 force, ForceMode.___);

2. Ray

Ray : 가상 광선
Ray Direction : Ray 방향
Ray Distance : Ray 길이

  1. Ray : 시작 기준에서 특정 방향과 거리까지 이어지는 광선, 이를 통해 상호작용을 구현할 수 있다.
    - 오브젝트 : Ray ray = new Ray(transform.position, transform.forward);
    - 카메라 중심 : Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); -> (0.5f, 0.5f, 0)가 카메라의 중심
    - Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); // 마우스

  2. Raycast : Ray에 맞은 Object를 판단하고 여러 가지 후처리를 할 수 있다.
    - 들어가야 하는 정보 : Ray(광선), RaycastHit(Object의 정보), MaxDistance(최대 거리), LayerMask(어느 Layer까지 판단을 할 지, 필터링) 등의 옵션

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

3. Input System의 SendMessage vs InvokeEvent

  1. SendMessage : “On + Action name” 인 함수를 찾아서 호출한다. (ex. OnMovement)

  2. Invoke Event : Inspector 상에서 Action에 함수를 설정하고 키 입력이 들어 왔을 때 호출한다.

  3. Invoke C sharp Events : C# 스크립트에서 Invoke Event 과정을 수행하는 것,구체적인 상황에 따라 별도의 함수를 등록할 수 있다. (키 입력 받고 실행 전, 키 입력 받고 실행 완료, 키 입력 해제 등)

profile
김나영(Unity_6기)

0개의 댓글