private void Update() { float t = 0f; for (int i = 0; i < parts.Length; i++) { if (currentClicked && parts[i] == currentClicked.transform) { t = expansionPath.Evaluate(currentClicked.FloatStore); currentClicked.FloatStore += Time.deltaTime; parts[i].position = transform.TransformPoint(partStartPositions[i] + partDirections[i] * t); } if (previousClicked && parts[i] == previousClicked.transform) { if (PrettyCloseToZero(t)) { previousClicked = null; if (queuedClick) { previousClicked = currentClicked; currentClicked = queuedClick; currentClicked.FloatStore = 0f; queuedClick = null; } parts[i].position = transform.TransformPoint(partStartPositions[i]); } else { t = expansionPath.Evaluate(previousClicked.FloatStore); parts[i].position = transform.TransformPoint(partStartPositions[i] + partDirections[i] * t); } } } }
private void Clicked(ClickableModel m) { if (previousClicked) { queuedClick = m; } else { previousClicked = currentClicked; currentClicked = m; currentClicked.FloatStore = 0f; } }