using System.Collections; using System.Collections.Generic; using UnityEngine; // 保存当前角色的快照 public struct UnitSnapshotInfo { public UnitController unit; public int animStateHash; public float normalizedTime; public TRS trs; } // 角色快照,用于lens effect public class UnitSnapshot : MonoBehaviour { [HideInInspector] public UnitController owner; public Animator animator; public Renderer[] renderers; public bool active { get { return this.gameObject.activeSelf; } set { this.gameObject.SetActive(value); } } public void Initialize(UnitController prototype) { owner = prototype; animator.runtimeAnimatorController = prototype.unitAnimation.animator.runtimeAnimatorController; animator.speed = 0; } public void ApplySnapshot(UnitSnapshotInfo info) { active = true; animator.speed = 0.02f; animator.Play(info.animStateHash, 0, info.normalizedTime); animator.Update(1 / 60f); animator.speed = 0; active = false; } }