UnityEditor.AnimationClipInfoProperties.MaskToClip C# (CSharp) Method

MaskToClip() public method

public MaskToClip ( AvatarMask mask ) : void
mask AvatarMask
return void
        public void MaskToClip(AvatarMask mask)
        {
            SerializedProperty property = this.Get("bodyMask");
            if ((property != null) && property.isArray)
            {
                for (AvatarMaskBodyPart part = AvatarMaskBodyPart.Root; part < AvatarMaskBodyPart.LastBodyPart; part += 1)
                {
                    if (part >= property.arraySize)
                    {
                        property.InsertArrayElementAtIndex((int) part);
                    }
                    property.GetArrayElementAtIndex((int) part).intValue = !mask.GetHumanoidBodyPartActive(part) ? 0 : 1;
                }
            }
            SerializedProperty serializedProperty = this.Get("transformMask");
            ModelImporter.UpdateTransformMask(mask, serializedProperty);
        }

Usage Example

示例#1
0
        private void AvatarMaskSettings(AnimationClipInfoProperties clipInfo)
        {
            if (clipInfo == null || !((UnityEngine.Object) this.m_AnimationClipEditor != (UnityEngine.Object)null))
            {
                return;
            }
            this.InitMask(clipInfo);
            int  indentLevel = EditorGUI.indentLevel;
            bool changed     = GUI.changed;

            ModelImporterClipEditor.m_MaskFoldout = EditorGUILayout.Foldout(ModelImporterClipEditor.m_MaskFoldout, ModelImporterClipEditor.styles.Mask);
            GUI.changed = changed;
            if (clipInfo.maskType == ClipAnimationMaskType.CreateFromThisModel && !this.m_MaskInspector.IsMaskUpToDate())
            {
                GUILayout.BeginHorizontal(EditorStyles.helpBox, new GUILayoutOption[0]);
                GUILayout.Label("Mask does not match hierarchy. Animation might not import correctly", EditorStyles.wordWrappedMiniLabel, new GUILayoutOption[0]);
                GUILayout.FlexibleSpace();
                GUILayout.BeginVertical();
                GUILayout.Space(5f);
                if (GUILayout.Button("Fix Mask"))
                {
                    this.SetTransformMaskFromReference(clipInfo);
                }
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();
            }
            else if (clipInfo.maskType == ClipAnimationMaskType.CopyFromOther && clipInfo.MaskNeedsUpdating())
            {
                GUILayout.BeginHorizontal(EditorStyles.helpBox, new GUILayoutOption[0]);
                GUILayout.Label("Source Mask has changed since last import. It must be Updated", EditorStyles.wordWrappedMiniLabel, new GUILayoutOption[0]);
                GUILayout.FlexibleSpace();
                GUILayout.BeginVertical();
                GUILayout.Space(5f);
                if (GUILayout.Button("Update Mask"))
                {
                    clipInfo.MaskToClip(clipInfo.maskSource);
                }
                GUILayout.EndVertical();
                GUILayout.EndHorizontal();
            }
            if (ModelImporterClipEditor.m_MaskFoldout)
            {
                ++EditorGUI.indentLevel;
                this.m_MaskInspector.OnInspectorGUI();
            }
            EditorGUI.indentLevel = indentLevel;
        }
All Usage Examples Of UnityEditor.AnimationClipInfoProperties::MaskToClip