728x90
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class HUD_ButtonController : MonoBehaviour
{
[SerializeField] Sprite defaultSprite;
[SerializeField] Sprite selectedSprite;
[SerializeField] Sprite pressedSprite;
[SerializeField] Sprite highlightSprite;
Image thisImage;
bool isPress = false;
bool IsPress { get { return isPress; } set { isPress = value; } }
private const float pressTime = 0.1f;
private void Awake()
{
thisImage = GetComponent<Image>();
}
public void PressFunc()
{
thisImage.sprite = pressedSprite;
IsPress = true;
StartCoroutine(ChangedSpriteFunc(selectedSprite, pressTime));
}
public void DeSelectedFunc()
{
IsPress = false;
thisImage.sprite = defaultSprite;
}
public void MouseOverFunc() //마우스가 버튼 위에 올라왔을 때
{
if (IsPress.Equals(false))
thisImage.sprite = highlightSprite;
}
public void MouseExitFunc() //마우스가 버튼 위에서 나갔을 때
{
if (IsPress.Equals(false))
thisImage.sprite = defaultSprite;
}
IEnumerator ChangedSpriteFunc(Sprite _sprite, float _time)
{
yield return new WaitForSeconds(_time);
thisImage.sprite = _sprite;
}
}
728x90
반응형
'Unity3D > Unity & C#' 카테고리의 다른 글
Unity & C# ~ 텍스트 사이즈에 맞춰서 width값 설정하기 (0) | 2022.06.03 |
---|---|
Unity & C# ~ 코루틴으로 회전하기 (Rotate Coroutine) (0) | 2022.05.31 |
Unity & C# ~ 리모트 버튼에서 스킵 버튼을 눌렀을 때 동작 (0) | 2022.05.31 |
Unity & C# ~ Singleton(싱글톤) (0) | 2022.05.20 |
Unity & C# ~ String.Format 자리수 (0) | 2022.04.27 |