Files
Main/Assets/Launcher/ExternalLibs/NGUI/Scripts/Interaction/UICenterOnClick.cs
2025-01-25 04:38:09 +08:00

35 lines
1.1 KiB
C#

//----------------------------------------------
// NGUI: Next-Gen UI kit
// Copyright © 2011-2015 Tasharen Entertainment
//----------------------------------------------
using UnityEngine;
/// <summary>
/// Attaching this script to an element of a scroll view will make it possible to center on it by clicking on it.
/// </summary>
[AddComponentMenu("NGUI/Interaction/Center Scroll View on Click")]
public class UICenterOnClick : MonoBehaviour
{
void OnClick ()
{
UICenterOnChild center = NGUITools.FindInParents<UICenterOnChild>(gameObject);
UIPanel panel = NGUITools.FindInParents<UIPanel>(gameObject);
if (center != null)
{
if (center.enabled)
center.CenterOn(transform);
}
else if (panel != null && panel.clipping != UIDrawCall.Clipping.None)
{
UIScrollView sv = panel.GetComponent<UIScrollView>();
Vector3 offset = -panel.cachedTransform.InverseTransformPoint(transform.position);
if (!sv.canMoveHorizontally) offset.x = panel.cachedTransform.localPosition.x;
if (!sv.canMoveVertically) offset.y = panel.cachedTransform.localPosition.y;
SpringPanel.Begin(panel.cachedGameObject, offset, 6f);
}
}
}