내일배움캠프/TIL

내일배움캠프 23일차 TIL - Input System 특강 정리 2

서보훈 2024. 10. 17. 20:48

New Input System 을 통해 UI 의 버튼등에 상호작용할 수 있는 방법과, Input System의 세부 설정입니다.

 


Standalone Input Module

UI 를 생성하면, EventSystem 오브젝트가 생성되고 해당 오브젝트를 통해 UI가 작동하게됩니다.

이때, Input Manager 를 설치하게 되면 이벤트 시스템의 입력 모듈 대체 여부가 발생합니다.

Replace with InputSystemUIInputModule 버튼을 누르게 되면 아래와 같이 변경됩니다.

이때, Action Asset에 Input System에서 기본으로 제공하는 액션 에셋이 지정되며, 에셋을 변경해서 개발자가 원하는 방식으로 UI를 조작할 수 있습니다.

 

기본 제공 액션 에셋을 이러합니다.

 


Action Properties

 

액션 에셋의 Actions 를 보면 측면에 Action Properties 가 존재합니다.

이 부분의 interactions 와 Processors 를 조정하여 입력을 받는 조건을 변경할 수 있습니다.

 

Interactions 에는 5가지의 조작방식을 지원합니다.

 

Hold

지정한 시간 이상을 눌르고 있어야 버튼이 작동합니다.

Hold Time을 조정함으로써 누르고 있어야하는 시간을 정할 수 있습니다.

※Press Point는 입력의 세기를 조절 가능한 기기에서 어느정도의 세기로 눌렀을때 작동하는지 여부를 결정합니다.

 

Tap

누르고 일정시간 이내에 떼어야 1회 작동합니다.

Max Tap Duration을 조정함으로써 이 시간 내로 떼어야 작동하도록 만들 수 있습니다.

 

Multi Tap

일정 횟수 이상 연속 입력하면 1회 작동합니다.

Tap Count 는 입력 횟수, Max Tap Duration 은 1회 탭당 버튼을 떼어야하는 시간

Max Tap Spacing 은 탭당 인식 시간을 지정합니다.

즉, 기본값은 누르고 0.2 초 내에 손을 떼는 입력을 0.75 초 이내로 2회 해야 입력이 발생합니다.

 

Press

누르고있는 동안 입력값을 발생시킵니다.

단 해당 내용은 Press Only 에서의 작동입니다.

Release Only 를 사용할경우 버튼에서 뗄 때 입력이 발생하며,

Press And Release 는 누르는동안 true, 뗄때 false가 반환됩니다.(boolean 이 아니면 기본값)

 

SlowTap

일정시간 버튼을 누른뒤 뗄 때 입력이 발생합니다.

Press의 Release 와 다른점은 Min Tap Duration 시간동안 누르지 않을경우 입력이 발생하지 않는다는점 입니다.

 

Interactions 는 하나의 액션에 여러개를 사용할 수 있습니다.


Processors

Processors는 입력이 발생할 때, 입력이 발생시키는 값을 조작하는 역할을 합니다.

true, false를 반환하는 값보다는 float, Vector3 등의 값을 반환하는 액션에서 사용됩니다.

 

Axis Deadzone

조이스틱등에서 사용됩니다.

Min 값을 넘어야 입력이 시작되며, Max 값을 넘길경우 최대값으로 간주합니다.

 

기본값은 0.125 만큼의 입력이 들어와야 입력되었다고 인식하며, 0.925 를 넘는 입력은 최대입력으로 간주합니다.

 

Invert

값을 반전합니다.

true 입력은 false 값을 발생시키며, -1 ~ 1 까지의 값을 반환시키는 Axis 라면 -1 값일때 1, 1 일때 -1 을 발생시킵니다.

해당 기능의경우, 입력을 받아주는 스크립트에서 처리하는것이 사용하기 편합니다.

 

Clamp

발생하는 값의 최대, 최소값을 지정합니다

-10 ~ 10 까지 발생할경우, Min -5, Max 5 를 정해주면 10 의 입력이 발생해도 코드는 5를 받게됩니다.

 

Normalize

정규화 입니다.

Min 값이 Zero 값보다 클경우, Min ~ Max 사이의 값을 0 ~ 1 값으로 치환하며

Min 값이 Zero 값보다 작을경우 Min ~ Max 사이의 값을 -1 ~ 1 사이의 값으로 치환합니다.

Scale

출력값의 크기를 변화시킵니다.

-1 ~ 1 사이의 출력에 Factor를 5로 설정할경우, -1 의 출력이 -5 로 변환되어 발생합니다.