using System; using System.Collections; using System.Collections.Generic; using System.Reflection; using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; using UnityEngine.UIElements; public class PageTurning : MonoBehaviour, IPointerClickHandler,IPointerEnterHandler,IPointerExitHandler { public Scrollbar slider; //检测鼠标是否在此UI上的布尔值 public bool Isin; // Start is called before the first frame update float startPoint; void Start() { startPoint = this.transform.position.y; ChangeScollbarLong(); } // Update is called once per frame void Update() { ChangePage(); MouseWheel(); } //让此页面的滚动跟随右侧的滑动条 void ChangePage() { if (slider.value < 1 && slider.value > 0) { this.transform.position = new Vector3(this.transform.position.x, slider.value * (this.transform.GetComponent().sizeDelta.y - this.transform.parent.GetComponent().sizeDelta.y)+ startPoint, this.transform.position.z); } } public void OnPointerClick(PointerEventData pointerEventData) { } public void OnPointerEnter(PointerEventData pointerEventData) { Isin = true; } public void OnPointerExit(PointerEventData pointerEventData) { Isin = false; } void MouseWheel() { if (Isin) { slider.value += Input.GetAxis("Mouse ScrollWheel")*0.06f; } if (slider.value > 1) { slider.value = 1; } if (slider.value < 0) { slider.value = 0; } } void ChangeScollbarLong() { float all = 0; all = this.transform.parent.GetComponent().sizeDelta.y; Debug.Log(all); slider.size = all/this.transform.GetComponent().sizeDelta.y; } }