Unity

유니티 C# 버튼 가려짐 해결

5_솔방울 2022. 11. 21.

게임을 만들면서 이미지를 넣은 버튼을 여럿 만들 것이다.

그러나 이미지가 사각형 범위로 입력을 판단하기 때문에 이미지 상 눌려야 할 버튼이 눌리지 않는 경우가 발생한다!

 

오늘은 이 문제를 해결할 간단한 솔루션을 살펴보자.

분명 노란색 캐릭터를 클릭하였으나 앞의 파란색 캐릭터가 클릭된다!

유니티 상에서 확인하면 역시나 다음과 같이 넓은 투명범위가 뒤의 캐릭터를 가리고 있는걸 확인할 수 있다.

이미지가 투명 범위까지 사각형으로 범위를 체크해 이러한 결과가 나타나는 것이다.

해결 방법

이미지의 alphaHitTestMinimumThreshold를 작은 값으로 맞춰주면 된다!

우선, 우리는 코드에서 이미지 설정을 만질 것이기 때문에 이미지를 Advanced에 있는 Read/Write Enabled를 true로 바꾸어준다. 그리고 아래의 코드를 작성하여 버튼에 넣어준다.

using UnityEngine;
using UnityEngine.UI;

[RequireComponent(typeof(Image))] //이미지가 없는 오브젝트에 붙일 경우 방지
public class CustomButton : MonoBehaviour
{
    private void Start()
    {
        GetComponent<Image>().alphaHitTestMinimumThreshold = 0.1f;
    }

}

정상적으로 동작한다!

그러면 단 한 줄의 코딩으로 이 문제를 해결할 수 있다!

작은 차이 같아보이지만, 이런 자잘한 디테일이 모여 완성도 있는 게임을 만든다.

'Unity' 카테고리의 다른 글

Unity Addressable을 활용하여 이미지 로드하기  (0) 2023.01.11
Unity Json으로 저장, 로드하는 법  (0) 2023.01.04

댓글