반응형
728x170
안녕하세요 유니티 비기너입니다.
이번 시간에는 canvas의 하위 객체인 UI 오브젝트들의
노출 순서를 제어하는 방법에 대해 알아보겠습니다.
결과 화면
![]() |
![]() |
오브젝트의 노출순서를 제어하는 결과 화면입니다.
우측 하이어 라키를 보시면 드래그를 진행 시 순서가 변경되는 것을 확인하실 수 있습니다.
캔버스 UI 오브젝트들은 하이어라키 상의 하단에 위치할 수 록 먼저 보이게 됩니다.
스크립트
using UnityEngine.EventSystems;
public class Sibling : MonoBehaviour, IDragHandler {
private RectTransform rectTransform;
void Awake() {
rectTransform = GetComponent<RectTransform>();
}
public void OnDrag(PointerEventData eventData) {
rectTransform.SetAsLastSibling();
transform.position = eventData.position;
}
}
event system의 IDragHandler를 이용하여 드래그 시 오브젝트를 위치를 지속적으로 변경
SetAsLastSibling 사용하여 같은 경로상의(부모 오브젝트가 동일한 자식 오브젝트들)
오브젝트들의 마지막 위치로 변경시켜 우선적으로 노출되도록 제어합니다.
반대로 SetAsFirstSibling을 사용하면 가장 첫 번째 위치로 변경합니다.
해당 함수를 이용하여 게임 내 아이템이 겹치는 인벤토리 또는 상태창을 선택에 따라 변경시키는 등등
여러 가지 방식에 응용이 가능합니다.
반응형
그리드형
'유니티실습' 카테고리의 다른 글
유니티 비주얼 스튜디오 자동완성 안 될 때 (0) | 2021.03.16 |
---|---|
유니티 비주얼 스튜디오 솔루션 탐색기 편집 중인 파일 위치 추적 (0) | 2021.03.15 |
유니티 Mathf Clamp 사용해보기 (0) | 2021.02.21 |
유니티 스크립트 편집 툴 변경하기 (0) | 2021.02.17 |
유니티 델리게이트 액션 활용해보기 (0) | 2021.01.04 |