티스토리 뷰

오늘도 ㅋㅋㅋ 피곤하다.. 그래서 정말 한개만 배웠다.

 

으으으...

오늘 배운내용은 UI버튼 등 이벤트를 발생시키는 곳에 마우스커서가 올라갔을때를 인식해 주는 코드이다.

 

오늘 배운것으로 할 수 있는것

 - UI버튼 클릭할때, 다른 함수가 실행되지 않게 할 수 있다.

 

예를들면, 클릭으로 물건을 생성하는 함수가 있다고 하자

//클릭했을때, money가 50보다 작으면 prebCoffee를 mousePosition에 생성
public void ClickAction()
   {
		if (Input.GetMouseButtonDown(0))
            {
                if(money >= 50)
                {
                    Vector2 mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);

                    Instantiate(prebCoffee, mousePosition, Quaternion.identity);

                    money = money - (long)50f;
                }
            }
	}

 

이 함수를 아래와 같이 Update함수에 넣어두면,

 

    void Update()
    {
        ClickAction();
    }

내가 다른 UI버튼을 클릭 할때도 계속 원치 않는 coffee를 만들어 낼 것이다.

그렇게 되면 아이템 몇번 옮기고 난후, 바닥에 coffee들이 난무하는 상황이 발생하게된다.

 

이 때!! 사용하는 것이 바로 아래에 있는 메서드다.

 

이렇게 EventSystem에서 IsPointerOverGameObject라는 함수를 이용해,

마우스 커서가 UI버튼 위에 없을 때만

작동 할 수 있도록 할 수 있다. (Yeah!!)

 Using UnityEngine.EventSystems; //이걸 꼭 해야함.
 
    void Update()
    {
        //UI위에 커서가 있을때 = ture/ 따라서 UI위에 커서가 없을때만 ClickAction함수를 실행
        if (EventSystem.current.IsPointerOverGameObject() == false)
        {
            ClickAction();
        } 
        Showmethemoney();
    }

이젠 마음놓고 UI클릭 하라구 척!

728x90
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함