/* * Found this script useful? Please donate ^^ * Bitcoin Address: 1LdyAQHXdFVqzGzah45sGKhsQ8wDE6jyci * Good luck and enjoy. * */ using UnityEngine; namespace Assets.Scripts { public class DragRotateSlowDown :MonoBehaviour { private const float ROTATION_SPEED = 10.0f; private const float LERP_SPEED = 1.0f; private Vector3 _theSpeed; private Vector3 _avgSpeed; private bool _isDragging = false; private Vector3 _targetSpeedX; public void OnMouseDown() { _isDragging = true; } public void Update() { if (Input.GetMouseButton(0) && _isDragging) { _theSpeed = new Vector3(-Input.GetAxis("Mouse X"), Input.GetAxis("Mouse Y"), 0.0F); _avgSpeed = Vector3.Lerp(_avgSpeed, _theSpeed, Time.deltaTime * 5); } else { if (_isDragging) { _theSpeed = _avgSpeed; _isDragging = false; } var i = Time.deltaTime*LERP_SPEED; _theSpeed = Vector3.Lerp(_theSpeed, Vector3.zero, i); } transform.Rotate(Camera.main.transform.up * _theSpeed.x * ROTATION_SPEED, Space.World); transform.Rotate(Camera.main.transform.right * _theSpeed.y * ROTATION_SPEED, Space.World); } } }