using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
public class ButtonImageChanger : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
private Button _button; //버튼
private Image _buttonImage; //버튼 이미지
[SerializeField] private Sprite normalImage; // 기본 이미지
[SerializeField] private Sprite pressedImage; // 눌림 이미지
private void Awake()
{
_button = GetComponent<Button>(); //버튼 컴포넌트
_buttonImage = GetComponent<Image>(); //버튼 이미지 컴포넌트
}
public void OnPointerDown(PointerEventData eventData)
{
if (_button.interactable)
{
_buttonImage.sprite = pressedImage;
}
}
public void OnPointerUp(PointerEventData eventData)
{
if (_button.interactable)
{
_buttonImage.sprite = normalImage;
}
}
}
유니티에서 기본으로 제공하는 버튼 UI는 눌렀을 때, 컬러 값은 변경할 수 있지만 이미지는 변경할 수 없다.
버튼 클릭시 이미지를 변경하고 싶다면 인터페이스를 추가하여 처리를 해야한다.
'Unity' 카테고리의 다른 글
유니티 모바일 프레임 (0) | 2024.07.28 |
---|---|
[유니티] InputSystem이 동작안하는 오류 (0) | 2024.07.14 |
[유니티] You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings. (0) | 2024.07.14 |
유니티 버튼 누르자마자 동작하기 (EventTrigger 스크립트 연결) (0) | 2024.06.17 |
유니티 여러곳에서 참조되는 데이터 관리 (0) | 2024.05.23 |