Unity 3D에서 플레이어를 만들 때 필요한 이론
- 스카이박스
- RigidBody-ForceMode
- Raycast
- InputSystem
Rigid body의 ForceMode다양한 힘 적용 방식
ForceMode 종류는 다음과 같습니다:
Force: 힘을 지속적으로 적용합니다.
Rigidbody.AddForce(Vector3 force, ForceMode.Force);Acceleration: 가속도를 적용합니다. 이전 힘의 누적에 따라서 점진적으로 더 빠르게 움직이게 됩니다.
Rigidbody.AddForce(Vector3 force, ForceMode.Acceleration);Impulse: 순간적인 힘을 적용합니다. 짧은 시간에 갑작스러운 움직임이 발생합니다.
(ex. 점프)
- Rigidbody.AddForce(Vector3 force, ForceMode.Impulse);
VelocityChange: 변화하는 속도를 적용합니다. 물체의 현재 속도를 변경하면서 움직입니다.
(ex. 걷다가 달리려고 하는 순간)
- Rigidbody.AddForce(Vector3 force, ForceMode.VelocityChange);
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, RaycastHit, MaxDistance, LayerMask 등의 옵션
RaycashHit 우리가 원하는 오브젝트의 정보가 담겨 있는 곳RaycastHit.point - 레이캐스팅이 감지된 위치
RaycastHit.distance - Ray의 원점에서 충돌 지점까지의 거리
RaycastHit.transform - 충돌 객체의 transform에 대한 참조
sendmessage vs InvokeEventinvoke C sharp Events 세부적인 조정 가능