hey. i want to create a simple pinball flipper arm which rotates 45° forward when i hold down space and snaps back zu 0° when i release space. i thought it would work like that:
using UnityEngine;
using System.Collections;
public class RotateDegrees : MonoBehaviour {
[SerializeField] protected Vector3 m_from = new Vector3(0.0F, 45.0F, 0.0F);
[SerializeField] protected Vector3 m_to = new Vector3(0.0F, -45.0F, 0.0F);
[SerializeField] protected Vector3 m_neutral = new Vector3(0.0F, 0.0F, 0.0F);
[SerializeField] protected float m_frequency = 5.0F;
void Update() {
if (Input.GetKeyDown("space")){
Quaternion from = Quaternion.Euler(this.m_neutral);
Quaternion to = Quaternion.Euler(this.m_to);
float lerp = 0.5F * (1.0F + Mathf.Sin(Mathf.PI * Time.realtimeSinceStartup * this.m_frequency));
this.transform.localRotation = Quaternion.Lerp(from, to, lerp);
}
else if (Input.GetKeyUp("space")){
Quaternion fromsn = Quaternion.Euler(this.m_to);
Quaternion tosn = Quaternion.Euler(this.m_neutral);
float lerp = 0.5F * (1.0F + Mathf.Sin(Mathf.PI * Time.realtimeSinceStartup * this.m_frequency));
this.transform.localRotation = Quaternion.Lerp(fromsn, tosn, lerp);
//Quaternion from = Quaternion.Euler(this.transform.rotation.eulerAngles);
}
}
}
but that turns out to look like this:
https://gfycat.com/ExcellentSourGiraffe
the gif got capured with 30FPS. but its so not working