UnityEditor.ModelImporterRigEditor.Apply C# (CSharp) Method

Apply() private method

private Apply ( ) : void
return void
        internal override void Apply()
        {
            MappingRelevantSettings[] sourceArray = new MappingRelevantSettings[base.targets.Length];
            for (int i = 0; i < base.targets.Length; i++)
            {
                SerializedObject obj2 = new SerializedObject(base.targets[i]);
                SerializedProperty property = obj2.FindProperty("m_AnimationType");
                SerializedProperty property2 = obj2.FindProperty("m_CopyAvatar");
                sourceArray[i].humanoid = property.intValue == 3;
                sourceArray[i].hasNoAnimation = property.intValue == 0;
                sourceArray[i].copyAvatar = property2.boolValue;
            }
            MappingRelevantSettings[] destinationArray = new MappingRelevantSettings[base.targets.Length];
            Array.Copy(sourceArray, destinationArray, base.targets.Length);
            for (int j = 0; j < base.targets.Length; j++)
            {
                if (!this.m_AnimationType.hasMultipleDifferentValues)
                {
                    destinationArray[j].humanoid = this.m_AnimationType.intValue == 3;
                }
                if (!this.m_CopyAvatar.hasMultipleDifferentValues)
                {
                    destinationArray[j].copyAvatar = this.m_CopyAvatar.boolValue;
                }
            }
            base.serializedObject.ApplyModifiedProperties();
            for (int k = 0; k < base.targets.Length; k++)
            {
                if (sourceArray[k].usesOwnAvatar && !destinationArray[k].usesOwnAvatar)
                {
                    SerializedObject serializedObject = new SerializedObject(base.targets[k]);
                    AvatarSetupTool.ClearAll(serializedObject);
                    serializedObject.ApplyModifiedProperties();
                }
                if (!sourceArray[k].usesOwnAvatar && destinationArray[k].usesOwnAvatar)
                {
                    ModelImporter importer = base.targets[k] as ModelImporter;
                    if (sourceArray[k].hasNoAnimation)
                    {
                        AssetDatabase.ImportAsset(importer.assetPath);
                    }
                    SerializedObject modelImporterSerializedObject = new SerializedObject(base.targets[k]);
                    GameObject original = AssetDatabase.LoadMainAssetAtPath(importer.assetPath) as GameObject;
                    Animator component = original.GetComponent<Animator>();
                    bool flag = (component != null) && !component.hasTransformHierarchy;
                    if (flag)
                    {
                        original = UnityEngine.Object.Instantiate<GameObject>(original);
                        AnimatorUtility.DeoptimizeTransformHierarchy(original);
                    }
                    AvatarSetupTool.AutoSetupOnInstance(original, modelImporterSerializedObject);
                    this.m_IsBiped = AvatarBipedMapper.IsBiped(original.transform);
                    if (flag)
                    {
                        UnityEngine.Object.DestroyImmediate(original);
                    }
                    modelImporterSerializedObject.ApplyModifiedProperties();
                }
            }
        }