본문 바로가기
Study/Unity

05. 유니티(Unity) 투명부분 제외하고 버튼클릭하기

by 겸 2018. 12. 27.

버튼에 이미지를 넣고 클릭을 하면 투명한 부분도 같이 버튼의 일부로 인식됩니다.

이렇게 하면 버튼의 영역이 항상 사각형이 되겠죠.

이 문제를 해결해보았습니다.

 

버튼을 클릭 시 Stage1 씬으로 넘어가는 기능을 구현해보겠습니다.

 

1. 버튼 추가

 

2. 버튼에 이미지 등록 

 

3. 해당 이미지의 Inspector에서 Advanced의 Read/Write Enabled 체크

 

4. Script 생성 후 작성

 
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using UnityEngine.UI;

public class Menu : MonoBehaviour
{
    public string SceneToLoad;
    public Button Stage1Button;

    public void LoadGame()
    {
        SceneManager.LoadScene(SceneToLoad);
    }
   
    void Start()
    {
        Stage1Button.GetComponent<Image>().alphaHitTestMinimumThreshold = 0.5f;
    }

}

alphaHitTestMinimumThreshold가 1이면 완전 불투명 한 픽셀만 인식함, 수치는 원하는대로 지정하기

https://docs.unity3d.com/ScriptReference/UI.Image-alphaHitTestMinimumThreshold.html 참고!

 

5. 이 Script를 EventSystem에 끌어넣고, 

컴포넌트에서 SceneToLoad에는 넘어갈 Scene의 이름, Stage1Button에 해당 기능을 실행할 버튼 지정

 

6. 버튼의 OnClick()에 EventSystem을 지정하고 LoadGame() 함수 설정

 

반응형