내일배움캠프(Unity)

숙련 주차 3D 강의 정리

빵어 2023. 12. 23. 19:41

낮밤 구현

- 2개의 라이트(낮 라이트, 밤 라이트)로 구현해야한다.

 

아웃라인 Outline

Outline 컴포넌트
적용안된 모습
outline 적용된 모습

 

InputAction.CallbackContext

Input System에서 입력 이벤트에 대한 정보를 포함하는 클래스

 public void OnAttackInput(InputAction.CallbackContext context)
    {
        if(context.phase == InputActionPhase.Performed)
            curEquip.OnAttackInput();
    }

 

context.phase == InputActionPhase.Performed

- 입력 액션이 수행(fired)된 상태일 때

 

 

Quternion.LoockRotation

Quaternion.LookRotation(forward, upwards);

주어진 방향을 향해 회전을 나타내는 쿼터니언 반환

forward: 회전할 방향을 나타내는 벡터

upwards: 원하는 '위' 방향을 나타내는 벡터

- 대부분 Vector3.up과 같이 월드 좌표계의 y축을 나타내는 벡터 사용

 

 

TryGetComponent

특정한 컴포넌트가 게임 오브젝트에 연결되어 있는지 확인

bool값 반환

내부에서 null체크를 수행하므로, 컴포넌트가 없어도 예외를 발생시키지 않는다.

~.TryGetComponent(out Resource resource)

위와 같이 사용가능

 

 

NavmeshPath

네비게이션 메시 시스템을 사용하여 경로 계산, 저장하기 위한 클래스

 

coners

Vector3 배열

웨이포인트(시작점, 종료점 포함)를 나타낸다

 

status

경로 계산의 상태 반환 (NavMeshPathStatus 열거형 반환)

경로 유효 여부, 계산 성공 여부 판별할 수 있게 함

 

GetCornersNonAlloc 메서드

Vector3 배열을 받아, 경로의 웨이포인트를 그 배열에 복사

경로 전체를 받아올 수도, 일부를 받아올 수도 있다.

 

 

NavMesh.SamplePosition

SamplePosition(Vector3 sourcePosition, out NavMeshHit hit, float maxDistance, NavMeshQueryFilter areaMask);

특정 위치에서 가장 가까운 네비게이션 메시의 유효한 지점을 찾아 반환 - bool 값 반환

hit으로 유효한 지점의 정보를 가지고 사용할 수 있음

 

sourcePosition: 시작 위치

hit: NavMeshHit 구조체, 함수가 성공적으로 호출되면 이 구조체에 유효한 지점의 정보가 저장

maxDistance: 시작위치에서 최대 검색 거리

filter: 어떤 종류의 네비게이션 메시를 대상으로 할지 필터를 설정

 

 

Random.onUnitSphere

반지름이 1.0인 구 표면의 랜덤 점(단위 벡터)을 반환 - Vector3값 반환

이를 통해 무작위 방향 벡터 생성 가능

Random.onUnitSphere * distance 같이 사용 가능

 

 

Mathf.Approximately

Approximately(float a, float b);

두 부동 소수점 숫자가 거의 같은지(Mathf.Epsilon보다 작은지) 비교

Mathf.Epsilon보다 같거나 작으면 true반환, 크면 false 반환

Mathf.Epsilon

부동 소수점 표현에서 1과 1보다 큰 다음 수 사이의 차이 중 가장 작은 양수 값

쉽게 말해서 매우 작은 양수 (1.401298E-45)

이 보다 작은 값은 표현할 수 없게 되어있다.

 

따라서 Approximately함수를 사용했을 때, Mathf.Epsilon보다 작거나 같으면 두 숫자를 같은 것으로 간주

-> 부동 소수점 연산의 한계로 인해 발생할 수 있는 정밀도 문제를 해결하기 위한 것