public void Init(Animator animator, string path) { _animator = animator; _runtimeAnimatorProxy = ResourceMgr.Instance.LoadAssetProxy(AssetType.AnimeCtrl, path); _runtimeAnimatorProxy.AddLoadFinishCallBack(() => { RuntimeAnimatorController ctrl = _runtimeAnimatorProxy.LoadUnitySharedAsset <RuntimeAnimatorController>(); if (ctrl) { _animator.runtimeAnimatorController = ctrl; _animatorOverrideController = ctrl as AnimatorOverrideController; _animator.Rebind(); } }); }
public void OverrideAnimationClip(string name, string path, bool autoPlay = true) { _animationClipProxy = ResourceMgr.Instance.LoadAssetProxy(AssetType.AnimeClip, path); _animationClipProxy.AddLoadFinishCallBack(() => { AnimationClip clip = _animationClipProxy.LoadUnitySharedAsset <AnimationClip>(); if (_animatorOverrideController && clip) { _animatorOverrideController[name] = clip; _animator.runtimeAnimatorController = _animatorOverrideController; _AnimationInfo.Data[name] = clip; _animator.Rebind(); if (autoPlay) { _animator.Play(name); } } }); }