예지의 테크 로그포스 (Yeji's Tech Log Force)
[Unity][HandiLab] 화면터치와 UI터치 구별하기 본문
[Unity] Projects & Study/HandiLab - AR 과학 실험
[Unity][HandiLab] 화면터치와 UI터치 구별하기
Yeji Heo 2022. 7. 7. 11:37우리 앱에서 실험을 처음 시작할 때 평면 인식 후 화면을 한번 터치하여 책상을 배치한다.
그런데 책상을 배치하려고 터치한 것이 아니라, 일시 정지하고 싶어서 좌측 상단의 정지 버튼을 누른 경우라면?
책상 배치와 정지 패널 활성화가 같이 이루어진다.
정지버튼을 터치한 것 / 책상배치를 위해 화면을 터치한 것을 구별하고 싶은데, 그렇지 못해서 두 동작이 동시에 일어나버리는 것.
이를 막기 위해서
EventSystem.current.IsPointerOverGameObject()
를 사용하면 된다. 터치한 부분이 UI이면 True, 아니면 False를 반환한다고 한다.
void Update()
{
if (spawnedObject == null && placementPoseIsValid && Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
{
if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
return;
else
{
ARPlaceObject();
objectGuide.SetActive(false);
}
}
UpdatePlacementPose();
UpdatePlacementIndicator();
}
이 부분은 책상을 터치하면 평면에 배치하는 부분이다.
사용자 터치가 들어와서 ARPlaceObject();가 호출되면 실험프리팹을 카메라 화면상에 Spawn 한다.
여기에 위 메서드를 적용한 조건문을 추가하여
UI 터치이면 return 하고, 그렇지 않을 경우에만 ARPlaceObject()를 호출하도록 코드를 수정해주었다.
'[Unity] Projects & Study > HandiLab - AR 과학 실험' 카테고리의 다른 글
[Unity][HandiLab] AR에서의 Z축 드래그 고정 (0) | 2022.07.07 |
---|---|
[Unity][HandiLab] 오브젝트가 깜빡깜빡하는 효과 주기 (0) | 2022.07.06 |
[Unity][HandiLab] UI카메라와 Fade 효과 (0) | 2022.07.06 |
[Unity][HandiLab] 디자이너를 구했다! (0) | 2022.07.06 |
[Unity][HandiLab] 실험 가이드 - Typing효과와 Audio Source (0) | 2022.07.06 |
Comments