{TIL} Unity 3D 플레이어 만들기 이론

Kwaksang·2024년 5월 24일

TIL

목록 보기
28/37
post-thumbnail

Unity 3D 플레이어 만들기 이론

Chapter .1 스카이 박스

Content .1 스카이박스란?

  • 게임 세께의 배경을 둘러싸는 환경 매핑 기술
  • 큐브맵(Cube Map)과 구체형 스카이박스(Sphere Map)등이 있음

Content .2 스카이박스의 특징

  • 6개의 텍스처로 구성된 큐브 맵
  • 하나의 구체로 텍스처가 매핑된 구체형 스카이박스
  • 위 둘 중 하나의 방법으로 구성됨
  • Unity에서는 씬의 배경으로 사용되며, 게임 환경 확장할 때 활용
  • 구름, 하늘, 산 등 자연적 표현하는데 사용
  • 미리 만들어진 스카이박스 or 직접 만들어서 사용
  • 게임 중에 스카이박스를 동적으로 변경 가능
    (낮 & 밤 / 시간의 흐름 / 특정 이벤트 등)
  • 성능에 영향을 미치므로 최적화에 주의!

Chapter .2 Rigidbody - ForceMode

Content .1 ForceMode의 종류

  1. Force : 힘을 지속적으로 적용함
Rigidbody.AddForce(Vector3 force, ForceMode.Force);
  1. Acceleration : 가속도 적용, 이전 힘의 누적에 따라 점진적으로 더 빠르게 움직임
Rigidbody.AddForce(Vector3 force, ForceMode.Acceleration);
  1. Impulse : 순간적인 힘을 적용, 짧은 시간에 갑작스러운 움직임 발생
Rigidbody.AddForce(Vector3 force, ForceMode.Impulse);
  1. 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에 의해 검출된 객체의 정보를 담음
  1. RaycastHit.point : 레이캐스팅이 감지된 위치
  2. RaycastHit.distance : Ray의 원점에서 충돌 지점까지의 거리
  3. RaycastHit.transform : 충돌 객체의 transform에 대한 참조

Chapter .4 InputSystem SendMessage vs InvokeEvent

Content .1 SendMessage

  • "On + Action name" 형태의 함수를 찾아서 호출하는 방식
  • ex> OnMove, OnJump 등

Content .2 InvokeEvent

  • Inspector 내에서 Action에 함수를 설정하고 키 입력이 들어왔을 때 호출

Content .3 Invoke C# Events

  • C# 스크립트에서 Invoke Event 과정을 수행
  • 키 입력 받고 실행 전
  • 키 입력 받고 실행 완료
  • 키 입력 해제 등
  • 구체적인 상황에 따라 별도의 함수 등록 가능
profile
게임은 재미와 기능!

0개의 댓글