C# Script를 생성 후 아래와 같이 코드를 입력해준다!
using UnityEngine;
using UnityEngine.UI;
public class ImageChange : MonoBehaviour
{
public Image targetImage; // 기존 이미지
public Sprite newImage; // 바뀔 이미지
private Sprite originalImage; // 원래 이미지 저장
private void Start()
{
// 시작할 때 원래 이미지를 저장하는 코드
originalImage = targetImage.sprite;
}
public void ChangeImage()
{
// 버튼을 누를 때 이미지가 바뀌고 0.3초 뒤에 원래 이미지로 돌아오는 코드
targetImage.sprite = newImage;
Invoke("RestoreOriginalImage", 0.3f);
}
private void RestoreOriginalImage()
{
// 3초 후에 원래 이미지로 복원하는 코드
targetImage.sprite = originalImage;
}
}
주의 사항
public class 옆의 이름과 해당 스크립트의 이름이 같아야 한다.
하이어라키 창에서 버튼을 만들어준다!
작성된 스크립트를 저장하여 하이어라키 창에 있는 버튼UI에 스크립트를 드래그하여 넣어준다!
버튼UI를 눌렀을 때 이렇게 연결되어 있으면 성공..!
Target Iamge에는 기존 이미지를 넣어주고 New Image는 버튼이 눌렸을 때 바뀔 이미지를 넣어준다!
아래의 사진처럼 인스펙터창에 Onclick을 설정해준다!
2021.3.x 버전 기준
Runtime Only 밑에는 버튼UI를 할당하고 오른쪽에는 ImageChange 스크립트의 ChangeImage 함수를 할당하면 된다.
Game을 실행시키고 버튼을 클릭하여 버튼의 이미지가 바뀌는 모습을 볼 수 있다!
버튼UI 참고용
테스트 후 버튼을 눌렀을 때 이미지가 변하면 성공하신겁니다!
혹시 잘못된 정보가 있다면 알려주세요 : )