/*
* 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);
}
}
}