이미지 바깥 부분을 클릭해 이미지를 닫게하는 부분을 구현해보려했고,
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를 보고 깨달았다..