반응형
드래그를 하면 카메라가 이동하는 코드.
RTS게임의 Top View에서 땅을 잡아 끌면 화면이 이동하는 효과를 위해 구현
① TouchCount : 모바일 디바이스 디스플레이에 손꾸락이 몇개 올려져 있는가?
② Input.Touch(2) : 이거면 3번째로 올라온 손가락을 의미
예제 코드
using UnityEngine.UI;
using UnityEngine;
public class TouchInput : MonoBehaviour
{
private float Speed = 0.25f;
private Vector2 nowPos, prePos;
private Vector3 movePos;
public Transform player;
public Text text1;
public Text text2;
public Text text3;
void Update()
{
text3.text = "터치카운트 : " + Input.touchCount;
if(Input.touchCount == 1)
{
Touch touch = Input.GetTouch (0);
if(touch.phase == TouchPhase.Began)
{
prePos = touch.position - touch.deltaPosition;
}
else if(touch.phase == TouchPhase.Moved)
{
nowPos = touch.position - touch.deltaPosition;
movePos = (Vector3)(prePos - nowPos) * Time.deltaTime * Speed;
player.transform.Translate(movePos);
prePos = touch.position - touch.deltaPosition;
}
}
}
}
주의할 점
손가락이 디스플레이 위에 올라와 있지 않은 상태에서 GetTouch()를 하면 그 아래 코드는 다 적용이 안됨.
손가락 하나만 올리고 아래 함수를 실행하면 (첫번째 손가락은 0)
Input. GetTouch(1)
두번째 손가락은 없으니, 위 코드는 적용이 안됨.
에러를 띄우진 않고 continue; 하는 것 같이 동작.
구현 시 손가락 개수별 예외처리를 해줘야 한다.
반응형
'Unity > Unity 리서치' 카테고리의 다른 글
Mouse DoubleClick (0) | 2021.06.08 |
---|---|
모바일 더블 터치(Mobile Double Touch) 구현 (0) | 2021.06.06 |
에셋 번들 (Asset bundle) & 어드레서블(Addressables) (0) | 2021.06.05 |
[RTS Engine] Unit Attack 공격 딜레이 (0) | 2021.06.04 |
UnityEvent 클래스 (0) | 2021.06.02 |