コード例 #1
0
            public static AnimatorLODOverrideController GetOverrideController(Animator animator)
            {
                foreach (AnimatorLODControllerOverrides controllerOverrides in _controllerOverrides)
                {
                    for (int i = 0; i < controllerOverrides._animatorData.Length; i++)
                    {
                        if (controllerOverrides._animatorData[i]._controller == animator.runtimeAnimatorController)
                        {
                            AnimatorLODOverrideController controller = new AnimatorLODOverrideController(animator.runtimeAnimatorController, controllerOverrides._animatorData[i]._animatorLODs)
                            {
                                name = animator.runtimeAnimatorController.name + " (LOD)"
                            };
                            return(controller);
                        }
                    }
                }

                return(null);
            }
コード例 #2
0
            private void Start()
            {
                //Create override controller
                _overrideController = AnimatorLODControllerOverrides.GetOverrideController(_animator);

                if (_overrideController == null)
                {
                    this.enabled = false;
                    return;
                }

                _animator.runtimeAnimatorController = _overrideController;

                //Cache LOD level types
                _LODs = _LODGroup.GetLODs();
                _LODHasSkinnedMeshes = new bool[_LODs.Length];

                for (int i = 0; i < _LODs.Length; i++)
                {
                    SetupLOD(ref _LODs[i], out _LODHasSkinnedMeshes[i]);
                }

                _currentLODLevel = -1;
            }