private void Update()
 {
     moveVector.x = Mathf.MoveTowards(moveVector.x, 0, groundDeceleration * Time.deltaTime);
     UpdateAnimatorParam();
     UpdateFacing();
     if (!TimeStateManager.Instance.IsPreview && LatestDestroyTime > 0)
     {
         if (LatestDestroyTime + ExistTime < TimeStateManager.Instance.FakeTime)
         {
             LatestDestroyTime = TimeStateManager.Instance.FakeTime - ExistTime;
         }
         //begin dissolving 1 second before
         if (LatestDestroyTime - 2f <= TimeStateManager.Instance.FakeTime)
         {
             pawnController.Kill();
             dissolveEffectHelper.BeginDissolve(2f);
         }
         if (LatestDestroyTime <= TimeStateManager.Instance.FakeTime)
         {
             this.ManagedDestroy(gameObject);
         }
     }
 }