///Credit judah4 ///Sourced from - http://forum.unity3d.com/threads/color-picker.267043/ using UnityEngine.EventSystems; namespace UnityEngine.UI.Extensions { public class TiltWindow : MonoBehaviour, IDragHandler { public Vector2 range = new Vector2(5f, 3f); private Transform mTrans; private Quaternion mStart; private Vector2 mRot = Vector2.zero; private Vector2 m_screenPos; void Start() { mTrans = transform; mStart = mTrans.localRotation; } void Update() { Vector3 pos = m_screenPos; float halfWidth = Screen.width * 0.5f; float halfHeight = Screen.height * 0.5f; float x = Mathf.Clamp((pos.x - halfWidth) / halfWidth, -1f, 1f); float y = Mathf.Clamp((pos.y - halfHeight) / halfHeight, -1f, 1f); mRot = Vector2.Lerp(mRot, new Vector2(x, y), Time.deltaTime * 5f); mTrans.localRotation = mStart * Quaternion.Euler(-mRot.y * range.y, mRot.x * range.x, 0f); } public void OnDrag(PointerEventData eventData) { m_screenPos = eventData.position; } } }