예지의 개발 로그포스 (Yeji's Log Force)

[Unity][HandiLab] 과학실험 콘텐츠 개발 메커니즘 본문

[Unity] Projects & Study/HandiLab - AR 과학 실험

[Unity][HandiLab] 과학실험 콘텐츠 개발 메커니즘

Yeji Heo 2022. 7. 6. 11:43

1. 충돌 감지

과학실험은 용액에 다른 뭔갈 넣으면 반응한다거나 하는 등

충돌에 의해 특정 반응이 일어나는 경우가 많다.

그래서 Collision이나 Trigger의 Enter / Exit이 있으면 어떤 애니메이션이 작동하게 하는 메커니즘을 토대로 한다. 

아래는 그 예시이다.

멸치해부실험에서 사용자의 드래그로 내장을 떼어냈을 때, 떼어져 나간 Object의 tag를 체크하고

코루틴을 사용해서 1초 후 사라지게 했다.

 

+ 예전에는 tag비교를 할 때 == operator를 사용했었다.

그런데 CompareTag()메소드는 동적 할당 없이 tag비교를 할 수 있어서 성능 향상에 효과가 있다고 하고,

해당 태그가 실제로 있는 태그인지도 체크해주기 때문에 웬만하면 이 메서드를 활용하려고 하고있다.

 

+ Invoke를 사용해서 1초의 딜레이를 줄 수도 있었겠지만,

충돌체의 정보가 담긴other을 파라미터로 넘겨 활용해야 했기에

코루틴을 사용했다. (Invoke는 매개변수의 사용 없이 오직 호출만 된다고 한다.)

 

 

2. 터치 감지

사용자가 터치했을때 조건을 달아서 다음 행동 진행하기

사용자가 Touch한 오브젝트가 무엇인지 파악해서 다음 행동 진행하기

 

+ 터치를 감지해서 특정 역할을 하는 것들은 메소드로 작성해 Update에서 호출

 

+ 터치와 관련하여 Drag도 제공해야했는데 이 부분은 AssetStore의 LeanTouch를 활용했다.

Drag기능이 필요한 오브젝트의 인스펙터에 LeanDragTranslate스크립트를 추가해주었다.

 

Comments