soundvision/UnityProject/Assets/Scenes/Examples/MIDI/script/CubeSync.cs

30 lines
854 B
C#
Raw Normal View History

using UnityEngine;
public class CubeSync : MonoBehaviour
{
private int counter_ = 0;
private float currentX_;
private float targetX_;
private float lastCallBack_;
private float callbackInterval_ = 0.05f;
public void onClockReceived()
{
var now = Time.realtimeSinceStartup;
callbackInterval_ = now - lastCallBack_;
lastCallBack_ = now;
currentX_ = (counter_ - 12) * 0.2f;
counter_++;
targetX_ = (counter_ - 12) * 0.2f;
counter_ %= 24;
}
public void Update()
{
var timeSinceLastCallback = Time.realtimeSinceStartup - lastCallBack_;
var elapsedRatio = timeSinceLastCallback / callbackInterval_;
var animationX = Mathf.Lerp(currentX_, targetX_, elapsedRatio);
transform.position = new Vector3(animationX, 0f, 0f);
}
}