コード例 #1
0
                public override void OnInspectorGUI()
                {
                    AnimatorLODControllerOverrides controllerOverrides = target as AnimatorLODControllerOverrides;

                    if (controllerOverrides == null)
                    {
                        return;
                    }

                    EditorGUI.BeginChangeCheck();

                    _dataList.index = -1;
                    _dataList.DoLayoutList();

                    if (EditorGUI.EndChangeCheck())
                    {
                        serializedObject.ApplyModifiedProperties();
                        CacheOverrideClips();
                    }

                    EditorGUILayout.Separator();

                    if (GUILayout.Button("Update Animation Overides"))
                    {
                        CacheOverrideClips();
                    }
                }
コード例 #2
0
                private void CacheOverrideClips()
                {
                    AnimatorLODControllerOverrides controllerOverrides = (AnimatorLODControllerOverrides)target;

                    for (int i = 0; i < controllerOverrides._animatorData.Length; i++)
                    {
                        for (int j = 0; j < controllerOverrides._animatorData[i]._animatorLODs.Length; j++)
                        {
                            CacheOverrideClips(controllerOverrides._animatorData[i]._controller, ref controllerOverrides._animatorData[i]._animatorLODs[j]);
                        }
                    }

                    EditorSceneManager.MarkSceneDirty(controllerOverrides.gameObject.scene);
                }
コード例 #3
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;
            }