-
Raycast는 광선 경로에
-
충돌체가 있는지 감지하기 위해
-
특정 방향의 점에서 보이지 않는
-
광선을 발사하는 과정입니다
-
총을 쏘는 것이 한 예입니다
-
이 인스턴스에서는
-
캐릭터는 자신을 배신하고 아버지를 죽인
-
악마의 상자를 쏴버리고 싶어 합니다
-
raycast 함수 문법은 이렇습니다
-
처음에는 혼동될 수 있지만
-
각 부분을 이해하면
-
구성에 수긍하실 겁니다
-
처음으로 광선의 시작은
-
세계 공간의 점입니다
-
그러므로 이 인스턴스에서
-
Vector3, X, Y 및 Z축 위치에 저장된
-
총신 앞의 점을 선택했습니다
-
그러나 세계 좌표 방향이 발사하려는
-
방향을 향하고 있지 않아
-
방향이 저장되어 있는 두 번째 Vector3가
-
필요합니다
-
이 두 Vector3 변수는 광선을 구성합니다
-
하지만 Ray 변수로 대체할 수도 있으며
-
해당 변수의 데이터 유형은
-
두 Vector3에 저장할 수 있습니다
-
코드는 이런 모양이 될 것입니다
-
함수의 다음 인수는
-
충돌체 충돌의 정보를 저장하는
-
RaycastHit 변수입니다
-
어떤 오브젝트가 광선을 교차하는지
-
코드에서 쿼리할 수 있습니다
-
마지막으로 선택적 인수 두 개입니다
-
거리는 광선 길이를
-
정의하며 생략하면 기본값인
-
무한 길이가 됩니다
-
다음은 레이어 마스크이며
-
Unity의 레이어 시스템에 있는
특정 레이어 수이며
-
광선이 무시하는 오브젝트를
-
배치할 수 있습니다
-
Raycast를 사용한 다른 예를
-
살펴봅시다
-
이 예제는 바닥에 가까이 갈 때
-
낙하산이 펴지는 낙하산 상자가
-
나옵니다
-
상자에는 부품이 2개 있습니다
-
슈트와 상자 자체가 그것입니다
-
슈트에는 슈트를 여는 것과
-
닫는 것, 이렇게 두 개의
-
애니메이션이 있습니다
-
이 예제에서는 상자가 바닥에 얼마나
-
떨어져 있는지 확인하기 위해 광선을
-
아래쪽으로 쏠 것이며
-
환경에 적용된 충돌체를 찾아
바닥을 확인할 것입니다
-
환경용 충돌체는 environment라는 단어로
-
태깅되어 있습니다
-
스크립트에서 해당 태그를 찾아보겠습니다
-
RayCast 함수가 IF문 안에 있어
-
아무 것이나 교차했다는 뜻인
-
true를 반환하면
-
IF문의 주석이 실행되고
-
RayCastHit 변수가 충돌한
-
것을 쿼리합니다
-
Physics.Raycast를 작성한
-
IF문에 상자 위치와 아래쪽 방향을 저장하는
-
landingRay 변수가 있습니다
-
Vector3.down 바로 가기를
-
광선을 쏘는 데
-
사용할 것입니다
-
RaycastHit 변수 'hit'는
-
아래쪽으로 쏠 때 광선과 충돌하는
-
모든 것을 저장하고 거리,
-
'length' 또는 광선은
-
'deployment height' 변수로 정의합니다
-
광선이 충돌체와 교차하면
-
deploy parachute 함수를 호출합니다
-
이 함수는 Boolean 'deployed' 플래그를
-
true로 설정해 반복할 수 없게 합니다
-
그리고 rigidbody의 Drag를
-
'parachuteEffectiveness' 변수로 설정합니다
-
이렇게 해서 낙하산이 펴지면
-
상자가 느리게 내려갑니다
-
또한 공용 변수에 할당하는
-
게임 오브젝트인 낙하산
-
오브젝트에서 애니메이션을
-
재생합니다
-
separate OnCollisionEnter 함수는
-
접는 애니메이션을 재생합니다
-
상자가 땅에 내려오거나 다른 오브젝트와
-
충돌하면 낙하산이 접힙니다
-
deployment height를 4로 설정해
-
광선 길이를 4로 정합니다
-
그리고 parachute effectiveness를 8로 설정해
-
rigidbody 끌기를 8로 정합니다
-
이제 낙하산 슈트 오브젝트를
-
parachute 변수로 끕니다
-
오브젝트에는 재생할 애니메이션 컴포넌트가
-
있어 펴는 것과 접는
-
애니메이션이 됩니다
-
이제 한 번 더 재생해 봅시다
-
씬 뷰나 게임에서는
-
광선 투시를 볼 수 있는
-
것에 주의하십시오
-
또한 Debug.DrawRay 함수를
-
사용하여 광선이
-
비춰지는 부분을 미리 볼 수 있습니다
-
Debug.DrawRay를
-
추가하여 Vector3.down 방향에서
-
상자 위치에 대한 광선을
-
시각적으로 그리고
-
기존 광선 길이인
deployment height를 곱합니다
-
이렇게 하여 아래 IF문에서 쏘는
-
실제 광선을 일치시킵니다
-
다시 재생하면 Unity는 씬 뷰에서
-
그려진 광선을
-
표시하여 광선을 보여줍니다