I tried to get ahead and made my own code for oscillating before watching this section. Mine seems to work pretty much the same as far as I can tell, except that it’s impossible to accidentally get a “divide by 0” error. Also it doesn’t involve anything about Tau.
Main difference is that instead of dividing by “period” I am multiplying by “speed”.
Any thoughts on this? Any pitfalls I’m not aware of?
public class Oscillator : MonoBehaviour
{
[SerializeField] Vector3 movementVector = new Vector3(10f, 0f, 0f);
[Range(0,1)][SerializeField] float movementFactor; // 0 for not moved, 1 for fully moved.
[SerializeField] float speed = 1f;
Vector3 startingPos;
void Start()
{
startingPos = transform.position;
}
void Update()
{
Vector3 offset = movementVector * movementFactor;
transform.position = startingPos + offset;
movementFactor = (Mathf.Sin(Time.time*speed)+1)/2;
}
}
So setting the “speed” to 0 just makes it not move at all, which I think is impossible with the other way to do this.