이렇게 좋은 크리스마스 이브날 무슨 기능을 구현했는지 알아볼까용~?
1.전체 맵 펼쳤을때 스크롤을 통해서 확대 축소 가능하게 하기:
Iscrollhandler, IdragHandler, IdropHandler를 사용해서 구현 위의 세가지 인터페이스들은 전부 (PointerEventData eventData)를 사용, eventData를 통해 값에 접근 가능.
Iscrollhandler의 eventData.scrollDelta.y를 vector3로 만들어 transform.localscale에 +=하는 방식으로 확대 축소 기능구현
2.전체 맵 확대했을 때 누르고 맵 옮기기+클릭 끝나면 원상태로 복귀:
첫 번째는 eventData.delta를 anchoredPosition에 더하는 방식으로 구현
두 번째는 localPosition을 Vector3.zero로 설정함으로서 부모(canvas) 위치의 정가운데로 이동할 수 있게함
3. 인터페이스 활용 연습:
IItem 만들어서 onTriggerEnter에서 각각의 기능을 사용할 수 있도록 함.
인터페이스를 만들기 위해서는 메서드 선언만 하면 됨. 메서드 구현은 인터페이스를 상속받은 클래스에 맡김. IItem은 각각의 item들에 상속시키고, IItem item = hit.collider.gameObject.GetComponent(); 은 플레이어 쪽 Physics.Raycast안에 삽입.
4. dotween의 시퀀스 사용:
예를 들어서 위 아래로 왔다갔다하는 책을 간단하게 만들고 싶다? 그러면 일단 sequence 생성.
Sequence sequence로 생성하고 여기에 필요한 메소드는 append로 추가. (ex: sequence.append(transform.DOMove(transform.position+Vector3.up)
중요: Sequence sequence=DOTween.Sequence(); 로 시작함
그리고 update문에서 루프 돌리기 (ex: sequence.SetLoops(-1, LoopType.Yoyo)
5. 커서와 관련된 내용:
Cursor.lockState = CursorLockMode.Locked;
커서 잠금기능
Cursor.lockState = CursorLockMode.Confined;
커서가 화면 밖으로 못나가게 막는 기능