private void AnimateSeparation(float time, float newSeparation) { Anim.wrapMode = WrapMode.Once; Anim.playAutomatically = false; Anim.Rewind(); var clipBuilder = new ClipBuilder(GetClip("separate")); for (int i = 0; i < coins.Length; i++) { var coin = coins[i]; var coinLocalPosition = GetCoinLocalPosition(i, coins.Length, newSeparation); clipBuilder.LocalPosition(coin, coin.transform.position, coinLocalPosition, time); } float scale = separation != 0 ? 0.95f : 1f; clipBuilder.LocalScale(gameObject.transform.localScale, Vector3.one * scale, time); ReplaceAndPlay(clipBuilder.Clip, "separate"); separation = newSeparation; }
private void AnimateImage(float time, float separation, float ratio) { if (coins == null) { return; } Anim.Stop(); Anim.wrapMode = WrapMode.Once; Anim.playAutomatically = false; Anim.Rewind(); var clipBuilder = new ClipBuilder(GetClip("separate")); for (int i = 0; i < coins.Length; i++) { var coin = coins[i]; var coinLocalPosition = GetCoinLocalPosition(i, coins.Length, separation); clipBuilder.LocalPosition(coins[i], coin.transform.position, coinLocalPosition, time); } clipBuilder.LocalScale(gameObject.transform.localScale, Vector3.one * ratio, time); ReplaceAndPlay(clipBuilder.Clip, "separate"); }