[Unity Vuforia] Rotating an object with mouse drag.
Hey, i'm making a project where i'm using vuforia for augmented reality. The concept of the game is to rotate various objects so that they align a path to the center.
There can only be one path correct at a time. I've made a script that lets me rotate the center with mouse drag, the problem is that when i click it immediately rotates without me moving. It rotates smoothly after that but the second i click it rotates a certain ammount depending on my mouse position.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RotateCenter : MonoBehaviour {
private bool isRotating;
// Use this for initialization
void Start () {
}
void Update()
{
if (isRotating)
{
//Get the Screen positions of the object
Vector2 positionOnScreen = Camera.main.WorldToViewportPoint(transform.position);
//Get the Screen position of the mouse
Vector2 mouseOnScreen = (Vector2)Camera.main.ScreenToViewportPoint(Input.mousePosition);
//Get the angle between the points
float angle = AngleBetweenTwoPoints(positionOnScreen, mouseOnScreen);
//Rotate
transform.rotation = Quaternion.Euler(new Vector2(0f, angle));
}
}
float AngleBetweenTwoPoints(Vector3 a, Vector3 b)
{
return Mathf.Atan2(-(a.y - b.y), a.x - b.x) * Mathf.Rad2Deg;
}
private void OnMouseDown()
{
isRotating = true;
}
private void OnMouseUp()
{
isRotating = false;
}
}
This is the code. If anyone can help me make it rotate smoothly i would greatly appreciate it. The object is also supposed to lock every 45 degrees, so if i leave the object at 65 degrees ( for example) it would rotate to 45. Please help me! Thank you.
Your answer
Follow this Question
Related Questions
[Unity Vuforia] Rotating object with mouse drag 0 Answers
Rotate and Zoom ARCamera 3Dobject in user touch 1 Answer
Detecting touch on a 3d model imported in Unity for an AR application using Vuforia 0 Answers
Image Target Recognizer 0 Answers
Is there any way to combine text recognition with extended tracking in unity using vufria's sdk? 0 Answers