스크롤뷰에서 이벤트핸들러 공유하기
2021. 5. 26. 15:38ㆍ개발/유니티
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Item : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
void OnBeginDrag(PointerEventData eventData)
{
//구현된 기능
}
void OnDrag(PointerEventData eventData)
{
//구현된 기능
}
void OnEndDrag(PointerEventData eventData)
{
//구현된 기능
}
}
유니티에서 스크롤뷰 안에 있는 아이템을 커스텀하는 경우가 있다.
해당 아이템에서 위에처럼 직접 드래그나 클릭관련 이벤트를 구현할경우
그 부모의 이벤트는 무시하는 경향이 있다. (그냥 오버라이트되는듯)
해당 문제를 해결하려면 scrollrect의 이벤트함수를 직접 연결해줘야한다.
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.EventSystems;
public class Item : MonoBehaviour, IBeginDragHandler, IDragHandler, IEndDragHandler
{
public ScrollRect scrollView;
void OnBeginDrag(PointerEventData eventData)
{
scrollView.OnBeginDrag(eventData);
//구현된 기능
}
void OnDrag(PointerEventData eventData)
{
scrollView.OnDrag(eventData);
//구현된 기능
}
void OnEndDrag(PointerEventData eventData)
{
scrollView.OnEndDrag(eventData);
//구현된 기능
}
}
ScrollRect에는 Hierarchy에 있는 오브젝트를 Inspector창에 직접 추가해주면 된다.
이렇게하면 ScrollRect의 이벤트 사용하면서도 직접 구현된 기능들은 동시에 작동시킬 수 있다.
'개발 > 유니티' 카테고리의 다른 글
유니티에서 웹서버와 POST 통신하기 (0) | 2021.09.30 |
---|---|
유니티 iOS에 플러그인 연결하기 (0) | 2021.06.21 |
유니티에서 sns로 데이터보내기(공유하기) (3) | 2021.04.21 |
유니티 발열 이슈에 관한 정리 (0) | 2021.04.16 |
유니티로 안드로이드 갤러리 호출 (3) | 2021.04.13 |