public IEnumerator MoveTo(TileVectorTriplet target) { TilePos = target.Horizontal; var from = transform.localPosition; var to = target.ToVector3(); var startTime = Time.time; var time = 0.5f; float t; do { t = (Time.time - startTime) / time; transform.localPosition = Vector3.Lerp(from, to, t); yield return(new WaitForFixedUpdate()); } while (t < 1); }
public static Vector3 ToVector3(this TileVectorTriplet tv3) { var tv = tv3.Horizontal; return(ToVec3.MultiplyPoint(new Vector3(tv.W, tv3.Vertical, tv.E))); }