public void Play(ISnapshot snapshot) { if (!Replaying) { return; } var current = snapshot.As <Snapshot>(); transform.position = current.Position; transform.localScale = new Vector2(current.FaceDirection, transform.localScale.y); m_Animator.SetFloat("absSpeed", current.Animator.AbsSpeed); m_Animator.SetBool("isJumping", current.Animator.IsJumping); m_Animator.SetBool("isCrouching", current.Animator.IsCrouching); m_Animator.SetBool("isFallingNotFromJump", current.Animator.IsFallingNotFromJump); m_Animator.SetBool("isSkidding", current.Animator.IsSkidding); }
public void Play(ISnapshot snapshot) { if (!Replaying) { return; } if (snapshot is AnimationSnapshot animation) { m_Animator.SetTrigger(snapshot.As <AnimationSnapshot>().Trigger); } else if (snapshot is CoinSnapshot coin) { Debug.Log($"{DateTime.Now.ToShortTimeString()}: playin"); var instance = Instantiate(objectToSpawn, coin.Position, coin.Quaternion); instance.GetComponentInChildren <Animator>().SetBool("forward", coin.Forward); } else { throw new Exception($"Unknown snapshot type: {snapshot.GetType()}"); } }