public static GPUAnimatorOverrideController GetOverrideController(GPUAnimatorRenderer renderer, Animator animator)
                {
                    GPUAnimatorRendererControllerOverrider animatorRendererOverrideController = renderer.GetComponent <GPUAnimatorRendererControllerOverrider>();

                    if (animatorRendererOverrideController != null)
                    {
                        return(animatorRendererOverrideController.GetOverrideController(animator));
                    }
                    else
                    {
                        RuntimeAnimatorController runtimeAnimatorController = GetRuntimeAnimatorController(animator);
                        return(new GPUAnimatorOverrideController(runtimeAnimatorController, renderer._animations.GetAnimations()));
                    }
                }
                    public override void OnInspectorGUI()
                    {
                        GPUAnimatorRendererControllerOverrider controllerOverrider = (GPUAnimatorRendererControllerOverrider)target;

                        if (DrawDefaultInspector())
                        {
                            serializedObject.ApplyModifiedProperties();
                            controllerOverrider.CacheOverrideClips();
                        }

                        EditorGUILayout.Separator();

                        if (GUILayout.Button("Update Animation Overides"))
                        {
                            controllerOverrider.CacheOverrideClips();
                        }
                    }
示例#3
0
                public override void Initialise(GPUAnimatorRenderer renderer)
                {
                    base.Initialise(renderer);

                    _animator            = GetComponent <Animator>();
                    _skinnedMeshRenderer = GameObjectUtils.GetComponent <SkinnedMeshRenderer>(this.gameObject, true);

                    int numLayers = Math.Max(Math.Min(1 + _numAdditionalLayers, _animator.layerCount), 1);

                    _layers = new GPUAnimatorLayer[numLayers];
                    for (int i = 0; i < _layers.Length; i++)
                    {
                        _layers[i] = new GPUAnimatorLayer(_animator, i);
                    }

                    _animator.runtimeAnimatorController = GPUAnimatorRendererControllerOverrider.GetOverrideController(_renderer, _animator);
                    _animator.avatar = GetDummyAvatar();
                }