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(); } }
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(); }