TIL(2024,05,24) Unity 숙련과정(3DSurvival)

김보근·2024년 5월 24일

Unity

목록 보기
7/113

이제 입문 팀프로젝트가 끝나고 숙련과정으로 들어와서 강의를 듣게 되었다.
저번 입문 팀프로젝트는
https://github.com/A7-ShootingGame-Team/ShootingGameProject
이 링크를 들어가면 확인 할수있다.

3D Unity

이론

스카이 박스

스카이 박스란?

게임 세계의 배경을 둘러싸는 환경 매핑 기술입니다. 큐브 맵(Cube Map)과 구체형 스카이박스(Sphere Map) 등이 있으며, 주로 다음과 같은 특징을 가집니다.

  • 스카이박스는 6개의 텍스처로 구성된 큐브 맵 또는 하나의 구체로 텍스처가 매핑된 구체형 스카이박스로 구성됩니다.

  • Unity에서는 씬의 배경으로 사용되며, 게임 환경을 확장시키는데 활용됩니다.

  • 주로 하늘, 구름, 산 등의 자연적인 배경을 표현하는 데 사용됩니다.

  • 미리 만들어진 스카이박스를 사용하거나 직접 만들어서 Unity에서 적용할 수 있습니다.

  • 게임 중에 스카이박스를 동적으로 변경하여 낮과 밤 등의 시간대나 특정 이벤트에 맞게 배경을 변화시킬 수 있습니다.

  • 성능에 영향을 미치므로 최적화에 주의해야 합니다.

Rigidbody - ForceMode

Rigidbody 컴포넌트를 사용하여 게임 오브젝트에 물리적인 힘을 가할 때, 이 ForceMode를 사용하여 다양한 힘 적용 방식을 설정할 수 있습니다.

주요한 ForceMode 종류는 다음과 같습니다:

  1. Force: 힘을 지속적으로 적용합니다.
    • Rigidbody.AddForce(Vector3 force, ForceMode.Force);
  2. Acceleration: 가속도를 적용합니다. 이전 힘의 누적에 따라서 점진적으로 더 빠르게 움직이게 됩니다.
    • Rigidbody.AddForce(Vector3 force, ForceMode.Acceleration);
  3. Impulse: 순간적인 힘을 적용합니다. 짧은 시간에 갑작스러운 움직임이 발생합니다. (아마도 대쉬나 점프에 쓰일듯하다.)
    • Rigidbody.AddForce(Vector3 force, ForceMode.Impulse);
  4. VelocityChange: 변화하는 속도를 적용합니다. 물체의 현재 속도를 변경하면서 움직입니다.
    • Rigidbody.AddForce(Vector3 force, ForceMode.VelocityChange);

이러한 ForceMode를 적절히 활용하여 게임 오브젝트에 원하는 물리적인 움직임과 효과를 부여할 수 있습니다.

Raycast

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 - 눈에 보이지 않는 광선(Ray)에 맞은 물체가 무엇인지 여부를 판단한 뒤 여러 가지 후처리를 하는 방식.
Ray, RaycastHit, MaxDistance, LayerMask 등의 옵션

RaycastHit - Raycast에 의해 검출된 객체의 정보가 담겨있다.
RaycastHit.point - 레이캐스팅이 감지된 위치

RaycastHit.distance - Ray의 원점에서 충돌 지점까지의 거리

RaycastHit.transform - 충돌 객체의 transform에 대한 참조

Input System의 SendMessage vs InvokeEvent

  • SendMessage
    1. “On + Action name” 인 함수를 찾아서 호출하는 방식.
      1. 위 이미지의 경우 OnMovement 함수를 찾아 호출한다.
  • Invoke Event
    1. Inspector 상에서 Action에 함수를 설정하고 키 입력이 들어 왔을 때 호출.
  • Invoke C sharp Events
    1. C# 스크립트에서 Invoke Event 과정을 수행.

    2. 키 입력 받고 실행 전, 키 입력 받고 실행 완료, 키 입력 해제 등의 구체적인 상황에 따라 별도의 함수를 등록할 수 있다.

      다음 강의에서는 이 이론을 토대로 구현을 해볼것이다.

profile
게임개발자꿈나무

0개의 댓글