[Unity] 이미지 바깥을 눌러 이미지 닫기 구현

jh Seo·2023년 9월 30일
0

유니티

목록 보기
36/42

개요

이미지 바깥 부분을 클릭해 이미지를 닫게하는 부분을 구현해보려했고,
UI부분은 아직 잘 모르겠어서 검색해봤다.

찾아본 방식은
RectTransformUtility의 RectangleContainsScreenPoint 함수를 사용하는 방식이다.

구현 부분

public class CloseImage : MonoBehaviour
{
    RectTransform imgRect;
    Vector3 clickPos;
    private void Awake()
    {
        imgRect = GetComponent<RectTransform>();
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            clickPos = Input.mousePosition;
            if (!RectTransformUtility.RectangleContainsScreenPoint(imgRect, clickPos))
            {
                gameObject.SetActive(false);
                return;
            }
        }
    }
}

마우스 입력이 되면 해당 위치값 읽어와서
RectTransfromUtility.RectangleContainsScreenPoint함수를 사용해
현재 RectTransform이 마우스 위치를 포함하는지 체크한다.
마우스가 RectTransform의 바깥쪽에서 클릭했다면 이미지를 끈다.

생각

처음에 마우스 위치 가져올때 습관적으로 camera.main.ScreenToWorldPoint함수를 사용했다.
모든곳이 다 바깥이라고 떠서 뭔가 했다가 ScreenPoint를 보고 깨달았다..

profile
코딩 창고!

0개의 댓글