Projext/Assets/02_Scripts/UI/Menu/GraphicsSettingsScroll.cs

79 lines
1.9 KiB
C#
Raw Normal View History

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using System.Collections;
public class GraphicsSettingsScroll : MonoBehaviour, IDragHandler, IScrollHandler
{
public RectTransform[] <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; // <20><> <20><EFBFBD><E8BFAD> <20><><EFBFBD><EFBFBD>!
public float <EFBFBD><EFBFBD>׼ӵ<EFBFBD> = 2f;
public float <EFBFBD>ټӵ<EFBFBD> = 50f;
private RectTransform <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
private RectTransform <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>; // <20><><EFBFBD><EFBFBD> Ȱ<><C8B0>ȭ<EFBFBD><C8AD> <20><><EFBFBD><EFBFBD>
void Start()
{
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = GetComponent<RectTransform>();
StartCoroutine(<EFBFBD>ʱ<EFBFBD>ȭ());
}
IEnumerator <EFBFBD>ʱ<EFBFBD>ȭ()
{
yield return null;
yield return null;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD>();
}
void <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD>()
{
foreach (RectTransform <EFBFBD><EFBFBD><EFBFBD><EFBFBD> in <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
{
if (<EFBFBD><EFBFBD><EFBFBD><EFBFBD> != null && <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.gameObject.activeInHierarchy)
{
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = <EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
Debug.Log("<22><><EFBFBD><EFBFBD><E7B3BB>: " + <EFBFBD><EFBFBD><EFBFBD><EFBFBD>.name);
return;
}
}
Debug.Log("<22><><EFBFBD><EFBFBD><E7B3BB> <20><>ã<EFBFBD><C3A3>!");
}
float <EFBFBD>ִũ<EFBFBD><EFBFBD>()
{
if (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> == null) return 0;
return Mathf.Max(0, <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.rect.height - <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.rect.height);
}
public void OnDrag(PointerEventData <EFBFBD><EFBFBD><EFBFBD>)
{
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD>();
<EFBFBD>̵<EFBFBD>(-<EFBFBD><EFBFBD><EFBFBD>.delta.y * <EFBFBD><EFBFBD>׼ӵ<EFBFBD>);
}
public void OnScroll(PointerEventData <EFBFBD><EFBFBD><EFBFBD>)
{
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD>();
<EFBFBD>̵<EFBFBD>(-<EFBFBD><EFBFBD><EFBFBD>.scrollDelta.y * <EFBFBD>ټӵ<EFBFBD>);
}
void <EFBFBD>̵<EFBFBD>(float <EFBFBD><EFBFBD>)
{
if (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> == null) return;
float <EFBFBD><EFBFBD>Y = <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.anchoredPosition.y + <EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD>Y = Mathf.Clamp(<EFBFBD><EFBFBD>Y, 0, <EFBFBD>ִũ<EFBFBD><EFBFBD>());
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.anchoredPosition = new Vector2(0, <EFBFBD><EFBFBD>Y);
}
public void <EFBFBD><EFBFBD>ũ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>ȭ()
{
Canvas.ForceUpdateCanvases();
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><EFBFBD>();
if (<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> != null)
{
LayoutRebuilder.ForceRebuildLayoutImmediate(<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>);
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.anchoredPosition = new Vector2(0, 0);
}
}
}