개요 - Spline이란?
Spline은 곡선을 사용하여 커브와 경로에 따라 오브젝트와 동작을 생성할 수 있습니다.
오브젝트의 이동 경로를 만들거나 맵의 배치, 새로운 선을 생성할 수 있습니다.
이를 통해 기존의 레벨 디자인을 비교적 쉽게할 수 있고 여러 특수 효과를 구현할 수 있습니다.
기본

Spline을 사용하기 위해서 는 Spline 패키지를 설치합니다.

이후 다른 오브젝트처럼 생성 할 수 있습니다. 우클릭 > Spline > Draw Spline Tool를 통해 곡선을 이룰 점을 생성할 수 있습니다.
마우스를 클릭하면 점이 생성 되고, 마우스를 드래그하면 탄젠트라인으로 그릴 수 있습니다.
처음 시작점과 연결하여 선을 닫히게 할 수 있습니다.
편집을 종료하려면 ESC버튼을 눌러 종료합니다.

편집중에는 각각의 점을 선택 할 수 있으며 점의 위치나 연결 선의 방식을 변경 할 수 있습니다.
- Linear : 직선 연결
- Auto: 기본값, 곡선
- Bezier : 탄젠트 가이드를 통해 곡선의 곡률 변경 가능
- Bezier/Mirrord : 기본값, 탄젠트 가이드의 좌우가 같아 대칭을 이룸
- Bezier/Continuous: 탄젠트 가이드의 좌우가 항상 반대이나 크기는 독립, 부드러운 선 작성
- Bezier/Broken : 기본값, 탄젠트 가이드의 좌우가 각각 독립, 날카로운 선 작성

또한 Closed 를 체크해제하면 시작점과 마지막점이 연결을 끊을 수 있습니다.
예시1. 프리팹 배치
Spline > square로 사각형 선을 만들고 크기를 25로 만듭니다.
Spline Instantiate 컴포넌트를 추가하고 외벽에 사용할 프리팹을 추가합니다.
Instaniate Method와 Spacing을 변경하여 프리팹이 어떤 방식으로 배치 될 지 수정할 수 있습니다. 이때 Count를 변경하여 구체적인 수를 지정할 수 있다.

Instaniate Method
항목의 인스턴스화 방법에 대해 선택 가능
- Instance Count : 지정된 갯수만큼의 인스턴스를 생성
- Spline Distance: 스플라인 상에서의 거리 간격으로 분리된 하여 인스턴스 생성
- Linear Distance : 월드 공간에서 선형욿 축정된 거리 간격으로 인스턴스 생성
Spacing(Count)
인스턴스간의 거리 설정
- Exact : 인스턴스간의 거리를 명시적으로 설정
- Auto : 겹치치 않고 최대한 많은 인스턴스 생성
- Random : 특정 범위의 거리로 생성

Offeset
- Position : 스플라인을 기준으로 이동
- Rotation : 배치후 회전
- Scale : 인스턴스의 크기
아래는 위와 같은 설정으로 계단 프래팹을 생성한 예시이다.

설정 후 Bake Instaces를 누르면 씬 상에 별개의 오브젝트로 생성된다.
이후 각각의 오브젝트를 수정하여 배치 할 수 있습니다.

여러개의 오브젝트또한 배치 할 수 있습니다.
아래는 직전으로 배치한 모습입니다,

사각형, 직선, 원형, 도형등 다양한 배치를 사용할 수 있습니다.

2. 기하학 도형 - Spline Extrude
Spline Extrude를 사용하면 스플라인에 따라 오브젝트를 만들 수 있습니다.

해당 오브젝트는 스플라인을 따라 만들어지고 Material을 적용할 수 있습니다.

아래의 옵션을 통해 이를 조절할 수 있습니다.
- Radius : 굵기
- Profile Edges : 메시(원통)의 변의 갯수
- Segments Per Unit : 메쉬의 한 단위의 길이를 구성하는 가장자리 루프의 수
- Cap Ends : 메시의 끝 단면을 채울지 여부, 연결 된 상태면 무시 됨
- Range/Percentage/from : 메시의 시작을 스플라인 기준 백분율로 표기
- Range/Percentage/to : 메시의 끝을 스플라인 기준 백분율로 표기
- Auto-Regen Geometry : 런타임에서 스플라인이 수정되면 메시도 자동으로 수정 될지 여부
- Update Colliders : 메시가 돌출 될 때 연결된 모든 콜라이더의 업데이트 여부
3. 경로 이동 - Spline Animate
오브젝트를 경로상에서 이동하도록 할 수 있습니다.

Spline Animate를 사용하면 스플라인을 따라서 오브젝트가 이동합니다.
원하는 오브젝트에 추가하고 이동하고자하는 스플라인을 설정합니다.

위 옵션을 통해 움직임을 제어할 수 있다.
- UpAxis : 게임 오브젝트의 기본 위쪽 방향 설정
- ForwadAxis : 게임 오브젝트의 기본 정면 방향
- Align To : 게임 오브젝트 정렬방법
- None : 정렬 없음
- Spline Element : 가장 가까운 점의 회전에서 보간
- Spline Object : 스플라인 방향으로 정렬
- World Space : 월드 표준 방향으로 정렬
- PlayOnAwake : 게임 오브젝트 로드시 이동 시작
- Start offset : (0~1) 처음 이동 시작 위치 스플라인 기준 비율
- Method : 이동 기준
- Time / Duration: 시간 기반, Duration 동안에 1회 완주하도록 이동
- Speed : Speed 옵션 선택시 이동 속도
- Easing : 이동의 감속/가속 운동, 선형운동의 분류
- None : 감속/가속 없는 선형
- Ease In Only : 처음에는 천천히 이후 가속
- Ease Out Only : 끝날 때 감속
- Ease In-Out : 천천히 시작 되고 이후 가속, 끝날 때 감속
- Loop Mode : 이동의 루프 모드
- Once : 한번만 진행
- Loop Continuous : 이동 완료시 다시 시작
- Ease In Then Countinuous : 천천히 시작하고 이후 반복
- PingPong : 시작점과 도착점을 번갈아가며 이동
참고
https://docs.unity3d.com/Packages/com.unity.splines@2.1/manual/index.html
https://www.youtube.com/watch?v=LbTkEQA_7IA