using UnityEngine;
using System.Collections;
public class UIDraggablePanelDamper : MonoBehaviour {
public float scrollDampeningFactor = 0.5f;
public float momentumDampingFactor = 0.5f;
UIPanel mPanel;
UIDraggablePanel draggablePanel;
Vector3 originalScale;
bool momentumSet = false;
void Start () {
draggablePanel = GetComponent<UIDraggablePanel>();
mPanel = GetComponent<UIPanel>();
originalScale = draggablePanel.scale;
}
void Update () {
Vector3 constraint = mPanel.CalculateConstrainOffset(draggablePanel.bounds.min, draggablePanel.bounds.max);
bool outOfBounds = constraint.magnitude > 0.001f;
draggablePanel.scale = outOfBounds ? originalScale * scrollDampeningFactor : originalScale;
if(draggablePanel.currentMomentum == Vector3.zero) {
momentumSet = false;
}
else if(outOfBounds && !momentumSet) {
draggablePanel.currentMomentum = draggablePanel.currentMomentum * momentumDampingFactor;
momentumSet = true;
}
}
}