목표: 가로 Swipe를 토대로 캐릭터 카메라 회전
- Event에 익숙해지기 위해서 Event 사용
- Scene이 바뀌어도 딱히 문제 없이 사용하기 위함
private Coroutine iCoroutine_Input = null;
public void StartInput()
{
this.iCoroutine_Input = this.StartCoroutine(this.IENInput());
}
public event System.Action<float> eSwipeHorizontal = null;
private IEnumerator IENInput()
{
while (true)
{
// :: Swipe Horizontal
// :: 처음 터치
if (Input.GetMouseButtonDown(0))
{
// :: 터치 시작 위치
Vector2 startPos = Input.mousePosition;
// :: 터치 중
while (Input.GetMouseButton(0))
{
// :: 터치 끝 위치
Vector2 endPos = Input.mousePosition;
// :: 터치 방향
Vector2 swipe = endPos - startPos;
// :: 터치 방향 이벤트
this.eSwipeHorizontal?.Invoke(swipe.x);
yield return null;
}
}
yield return null;
}
}
public void StopInput()
{
if (this.iCoroutine_Input != null)
{
this.StopCoroutine(this.iCoroutine_Input);
this.iCoroutine_Input = null;
}
}
'Unity' 카테고리의 다른 글
[Unity] 유니티 에디터 상에서 어느 씬에서나 실행해도 첫번째 씬으로 가도록 하는 처리 (0) | 2023.02.01 |
---|---|
[Unity] OnTriggerEnter가 실행되지 않을 때 (0) | 2023.01.30 |
[Unity] UI가 카메라를 바라보게 만들기 (0) | 2023.01.18 |
[Unity] TextMeshPro의 숫자 카운팅 애니메이션(올라가거나 내려가는 애니메이션 처리) (0) | 2023.01.17 |
[Unity] 두 카메라(3D 오브젝트 표시 카메라, UI 표시 카메라) 간의 3D → 2D 위치 변환 (0) | 2023.01.16 |