mirror of
https://github.com/DerTyp7/defrain-shooter-unity.git
synced 2025-10-29 12:52:07 +01:00
added new HomeSceneBtns
This commit is contained in:
76
Assets/Scripts/HomeMenu/HomeSceneBtnScript.cs
Normal file
76
Assets/Scripts/HomeMenu/HomeSceneBtnScript.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using UnityEngine.EventSystems;
|
||||
|
||||
|
||||
public class HomeSceneBtnScript : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
|
||||
{
|
||||
[SerializeField] Color onHoverColor;
|
||||
[SerializeField] Color onPressedColor;
|
||||
|
||||
Color originBgColor;
|
||||
Image bgImage;
|
||||
GameObject marker;
|
||||
|
||||
bool isHovering = false;
|
||||
|
||||
//Color Lerp
|
||||
[SerializeField] float hoverBgTransitionTime = 0.4f;
|
||||
[SerializeField] float exitBgTransitionTime = 0.2f;
|
||||
|
||||
//Marker Lerp
|
||||
[SerializeField] float markerHeight = 20.0f;
|
||||
[SerializeField] float hoverMarkerTransitionTime = 0.1f;
|
||||
[SerializeField] float exitMarkerTransitionTime = 0.1f;
|
||||
|
||||
float hoveringTimePassed = 0.0f;
|
||||
float exitingTimePassed = 0.0f;
|
||||
|
||||
void Start()
|
||||
{
|
||||
marker = gameObject.transform.GetChild(1).gameObject;
|
||||
bgImage = gameObject.transform.GetChild(0).GetComponent<Image>();
|
||||
originBgColor = bgImage.color;
|
||||
}
|
||||
|
||||
void Update()
|
||||
{
|
||||
|
||||
if (isHovering)
|
||||
{
|
||||
exitingTimePassed = 0.0f;
|
||||
hoveringTimePassed += Time.deltaTime;
|
||||
|
||||
//Color
|
||||
bgImage.color = Color.Lerp(originBgColor, onHoverColor, hoveringTimePassed / hoverBgTransitionTime);
|
||||
|
||||
//Marker
|
||||
RectTransform rectTranform = marker.GetComponent<RectTransform>();
|
||||
rectTranform.sizeDelta = new Vector2(rectTranform.rect.width, Mathf.Lerp(0, markerHeight, hoveringTimePassed / hoverMarkerTransitionTime));
|
||||
}
|
||||
else
|
||||
{
|
||||
hoveringTimePassed = 0.0f;
|
||||
exitingTimePassed += Time.deltaTime;
|
||||
|
||||
//Color
|
||||
bgImage.color = Color.Lerp(onHoverColor, originBgColor, exitingTimePassed / exitBgTransitionTime);
|
||||
|
||||
//Marker
|
||||
RectTransform rectTranform = marker.GetComponent<RectTransform>();
|
||||
rectTranform.sizeDelta = new Vector2(rectTranform.rect.width, Mathf.Lerp(markerHeight, 0, exitingTimePassed / exitMarkerTransitionTime));
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
isHovering = true;
|
||||
}
|
||||
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
isHovering = false;
|
||||
}
|
||||
}
|
||||
11
Assets/Scripts/HomeMenu/HomeSceneBtnScript.cs.meta
Normal file
11
Assets/Scripts/HomeMenu/HomeSceneBtnScript.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4e69f5ca575cd164aa893c1f9673916d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Reference in New Issue
Block a user