Unity 3D 플레이어 만들기 이론
Chapter .1 스카이 박스
Content .1 스카이박스란?
- 게임 세께의 배경을 둘러싸는 환경 매핑 기술
- 큐브맵(Cube Map)과 구체형 스카이박스(Sphere Map)등이 있음
Content .2 스카이박스의 특징
- 6개의 텍스처로 구성된 큐브 맵
- 하나의 구체로 텍스처가 매핑된 구체형 스카이박스
- 위 둘 중 하나의 방법으로 구성됨
- Unity에서는 씬의 배경으로 사용되며, 게임 환경 확장할 때 활용
- 구름, 하늘, 산 등 자연적 표현하는데 사용
- 미리 만들어진 스카이박스 or 직접 만들어서 사용
- 게임 중에 스카이박스를 동적으로 변경 가능
(낮 & 밤 / 시간의 흐름 / 특정 이벤트 등)
- 성능에 영향을 미치므로 최적화에 주의!
Chapter .2 Rigidbody - ForceMode
Content .1 ForceMode의 종류
- Force : 힘을 지속적으로 적용함
Rigidbody.AddForce(Vector3 force, ForceMode.Force);
- Acceleration : 가속도 적용, 이전 힘의 누적에 따라 점진적으로 더 빠르게 움직임
Rigidbody.AddForce(Vector3 force, ForceMode.Acceleration);
- Impulse : 순간적인 힘을 적용, 짧은 시간에 갑작스러운 움직임 발생
Rigidbody.AddForce(Vector3 force, ForceMode.Impulse);
- VelocityChange : 변화하는 속도를 적용, 물체의 현재 속도를 변경하면서 움직임
Rigidbody.AddForce(Vector3 force, ForceMode.VelocityChange);
Chapter .3 Raycast
Content .1 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);
Content .2 Raycast
- 광선(Ray)에 맞은 물체가 무엇인지 여부를 판단한 뒤 여러 가지 후처리를 하는 방식
- Ray, RaycastHit, MaxDistance, LayerMask 등의 옵션
Content .3 RaycastHit
- Raycast에 의해 검출된 객체의 정보를 담음
- RaycastHit.point : 레이캐스팅이 감지된 위치
- RaycastHit.distance : Ray의 원점에서 충돌 지점까지의 거리
- RaycastHit.transform : 충돌 객체의 transform에 대한 참조
Content .1 SendMessage
- "On + Action name" 형태의 함수를 찾아서 호출하는 방식
- ex> OnMove, OnJump 등
Content .2 InvokeEvent
- Inspector 내에서 Action에 함수를 설정하고 키 입력이 들어왔을 때 호출
Content .3 Invoke C# Events
- C# 스크립트에서 Invoke Event 과정을 수행
- 키 입력 받고 실행 전
- 키 입력 받고 실행 완료
- 키 입력 해제 등
- 구체적인 상황에 따라 별도의 함수 등록 가능