Unity3D/Unity & C#
Unity & C# ~ Button Sprite Swap Scirpt Controller
캬캬백곰
2022. 5. 31. 13:36
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
반응형