コード例 #1
0
        public void OverrideAnimationClip(string path)
        {
            if (_animationPath == path)
            {
                return;
            }
            _animationPath = path;
            if (_animationClipProxy != null)
            {
                _animationClipProxy.UnloadProxy();
            }
            _animationClipProxy = ResourceMgr.singleton.LoadAssetAsync(path);
            _animationClipProxy.AddLoadFinishCallBack(() =>
            {
                var clip = _animationClipProxy.GetUnityAsset <AnimationClip>();
                if (Machine.AnimatorOverrideController && clip)
                {
                    Machine.AnimatorOverrideController[StateName] = clip;
                    Machine.Animator.runtimeAnimatorController    = Machine.AnimatorOverrideController;
                    //_animator.Rebind();

                    _animationClip = clip;
                }
            });
        }
コード例 #2
0
 public void Initialize(Animator animator, string path)
 {
     _animator             = animator;
     _runtimeAnimatorProxy = ResourceMgr.singleton.LoadAssetAsync(path);
     _runtimeAnimatorProxy.AddLoadFinishCallBack(() =>
     {
         var ctrl = _runtimeAnimatorProxy.GetUnityAsset <RuntimeAnimatorController>();
         if (ctrl)
         {
             _animator.runtimeAnimatorController = ctrl;
             _animatorOverrideController         = new AnimatorOverrideController(ctrl);
             _animator.Rebind();
         }
     });
 }
コード例 #3
0
        public void Initialize()
        {
            if (null == Entity)
            {
                return;
            }
            Animator = Entity.Animator;
            _runtimeAnimatorProxy = ResourceMgr.singleton.LoadAssetAsync(AssetPath);
            _runtimeAnimatorProxy.AddLoadFinishCallBack(() =>
            {
                var ctrl = _runtimeAnimatorProxy.GetUnityAsset <RuntimeAnimatorController>();
                if (ctrl)
                {
                    AnimatorOverrideController         = new AnimatorOverrideController(ctrl);
                    Animator.runtimeAnimatorController = AnimatorOverrideController;
                    Animator.Rebind();
                    Enable = true;
                    TransToDefault();

                    //TODO
                    foreach (var state in StateList)
                    {
                        var str = string.Empty;
                        if (state.StateName == StateNameEnum.Idle.ToString())
                        {
                            str = "Assets/Bundles/Animation/Skeleton/Idle.anim";
                        }
                        if (state.StateName == StateNameEnum.Move.ToString())
                        {
                            str = "Assets/Bundles/Animation/Skeleton/Run.anim";
                        }
                        if (state.StateName == StateNameEnum.Skill.ToString())
                        {
                            str = "Assets/Bundles/Animation/Skeleton/Attack.anim";
                        }
                        if (state.StateName == StateNameEnum.Special.ToString())
                        {
                            str = "Assets/Bundles/Animation/Skeleton/Damage.anim";
                        }
                        if (state.StateName == StateNameEnum.Dead.ToString())
                        {
                            str = "Assets/Bundles/Animation/Skeleton/Death.anim";
                        }
                        state.Initialize(str);
                    }
                }
            });
        }
コード例 #4
0
        public void OverrideAnimationClip(string name, string path, bool autoPlay = true)
        {
            _animationClipProxy = ResourceMgr.singleton.LoadAssetAsync(path);
            _animationClipProxy.AddLoadFinishCallBack(() =>
            {
                var clip = _animationClipProxy.GetUnityAsset <AnimationClip>();
                if (_animatorOverrideController && clip)
                {
                    _animatorOverrideController[name]   = clip;
                    _animator.runtimeAnimatorController = _animatorOverrideController;
                    _animationInfo[name] = clip;
                    //_animator.Rebind();

                    if (autoPlay)
                    {
                        _animator.Play(name, 0, 0f);
                    }
                }
            });
        }