You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iot/projects/IoTClient/Assets/UniversalMediaPlayer/Scripts/SimpleRotateSphere.cs

55 lines
1.5 KiB

using UnityEngine;
namespace UMP
{
public class SimpleRotateSphere : MonoBehaviour
{
private const int RMB_ID = 0;
private Transform _cachedTransform;
private Vector2? _rmbPrevPos;
private float _x;
private float _y;
[Range(1, 100)]
[SerializeField]
private float _rotationSpeed = 4;
void Awake()
{
_cachedTransform = Camera.main.transform;
}
void Update()
{
TrackRotation();
}
private void TrackRotation()
{
if (_rmbPrevPos.HasValue)
{
if (Input.GetMouseButton(RMB_ID))
{
if (((int)_rmbPrevPos.Value.x != (int)Input.mousePosition.x)
|| ((int)_rmbPrevPos.Value.y != (int)Input.mousePosition.y))
{
_x += (_rmbPrevPos.Value.y - Input.mousePosition.y) * Time.deltaTime * _rotationSpeed;
_y -= (_rmbPrevPos.Value.x - Input.mousePosition.x) * Time.deltaTime * _rotationSpeed;
_cachedTransform.rotation = Quaternion.Euler(_x, _y, 0);
_rmbPrevPos = Input.mousePosition;
}
}
else
{
_rmbPrevPos = null;
}
}
else if (Input.GetMouseButtonDown(RMB_ID))
{
_rmbPrevPos = Input.mousePosition;
}
}
}
}