- Home /
Moving needle from one angle to another angle one time
I am trying to make a meter with rotating needle (not speedometer exactly). This meter is not controlled by the player, but when a certain speed is hit the player must press a button. I want to move my needle from 90 degrees to -90 degrees one time. The speed of the needles movement will need to depend on a time variable. I am able to move the needle to a specific point, but I am having difficulty getting the needle to smoothly move from 90 to -90 over time. I was messing around with Mathf.Lerp and Quaternion.Euler.
Here's what I have so far:
using UnityEngine;
using System.Collections;
public class MoveDial : MonoBehaviour {
public Transform needle;
private float needleSpeed;
private float needleStart;
private float needleEnd;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
needle.rotation = Quaternion.Euler(0,0,-90);
//needle.rotation = Mathf.Lerp (needleStart, needleEnd, needleSpeed);
}
}
Answer by sumitb_mdi · Dec 18, 2016 at 11:03 AM
private const float ANGLE_CHANGE_SPEED = 10.0f; //Change this as per your requirement.
float currentAngle = 90.0f;
void Update () {}
if (currentAngle > -90.0f) {
needle.rotation = Quaternion.Euler (0, 0, currentAngle);
currentAngle -= (ANGLE_CHANGE_SPEED * Time.deltaTime);
}
}
Your answer
Follow this Question
Related Questions
Uniform rotation - uniform lerp 1 Answer
Quaternion Rotation On Specific Axis Issue 0 Answers
Car speedometer MPH 1 Answer
Slowly Rotate to Look at 1 Answer
Cant slow down rotation Speed 1 Answer