/// <summary>
        /// Creates and returns a PosePreset based on humanoid muscle values
        /// </summary>
        public static PumkinsPosePreset CreatePreset(string poseName, float[] muscles)
        {
            PumkinsPosePreset pose = CreateInstance <PumkinsPosePreset>();

            pose.SetupPreset(poseName, muscles);
            return(pose);
        }
        /// <summary>
        /// Creates and returns a PosePreset based on humanoid muscle values
        /// </summary>
        public static PumkinsPosePreset CreatePreset(string poseName, HumanPose p)
        {
            PumkinsPosePreset pose = CreateInstance <PumkinsPosePreset>();

            pose.SetupPreset(poseName, p);
            return(pose);
        }
        /// <summary>
        /// Creates and returns a PosePreset based on transform rotations only
        /// </summary>
        public static PumkinsPosePreset CreatePreset(string poseName, GameObject avatar, PosePresetMode mode)
        {
            PumkinsPosePreset pose = CreateInstance <PumkinsPosePreset>();

            pose.SetupPreset(poseName, avatar, mode);
            return(pose);
        }
Example #4
0
        public static void ShowWindow(PumkinsPosePreset newPreset = null)
        {
            AssignOrCreatePreset <PumkinsPosePreset>(newPreset);

            if (!_window || _window.GetType() != typeof(CreatePosePresetPopup))
            {
                _window = CreateInstance <CreatePosePresetPopup>();
                _window.autoRepaintOnSceneChange = true;

                if (minWindowSize.magnitude > Vector2.zero.magnitude)
                {
                    float maxX = Mathf.Max(_window.minSize.x, minWindowSize.x);
                    float maxY = Mathf.Max(_window.minSize.y, minWindowSize.y);
                    _window.minSize = new Vector2(maxX, maxY);
                }
            }

            if (editingExistingPreset)
            {
                _window.titleContent = new GUIContent(Strings.Presets.editPosePreset);
                _overwriteFile       = true;
            }
            else
            {
                _window.titleContent = new GUIContent(Strings.Presets.createPosePreset);
            }

            _window.ShowUtility();
        }
 private void OnDestroy()
 {
     if (editingExistingPreset)
     {
         PumkinsPosePreset preset = (PumkinsPosePreset)CreatePresetPopupBase.preset;
         if (!preset)
         {
             AssignOrCreatePreset <PumkinsPosePreset>(null);
         }
         preset.SetupPreset(preset.name, PumkinsAvatarTools.SelectedAvatar, preset.presetMode);
     }
 }
        private void OnEnable()
        {
            preset = (PumkinsPosePreset)target;
            if (defaultMusclesNames == null || defaultMusclesNames.Length == 0)
            {
                defaultMusclesNames = HumanTrait.MuscleName;
            }

            serializedPosePreset = new SerializedObject(preset);

            pName               = serializedPosePreset.FindProperty("name");
            pMuscles            = serializedPosePreset.FindProperty("muscles");
            pPresetMode         = serializedPosePreset.FindProperty("presetMode");
            pTransformPaths     = serializedPosePreset.FindProperty("transformPaths");
            pTransformRotations = serializedPosePreset.FindProperty("transformRotations");
        }
        public static void ShowWindow(PumkinsPosePreset newPreset = null)
        {
            AssignOrCreatePreset <PumkinsPosePreset>(newPreset);

            if (!_window)
            {
                _window = CreateInstance <CreatePosePresetPopup>();
                _window.autoRepaintOnSceneChange = true;
            }

            if (editingExistingPreset)
            {
                _window.titleContent = new GUIContent(Strings.Presets.editPosePreset);
                _overwriteFile       = true;
            }
            else
            {
                _window.titleContent = new GUIContent(Strings.Presets.createPosePreset);
            }

            _window.ShowUtility();
        }
        private void OnGUI()
        {
            PumkinsPosePreset preset = (PumkinsPosePreset)CreatePresetPopupBase.preset;

            if (!preset)
            {
                AssignOrCreatePreset <PumkinsPosePreset>(null);
                return;
            }

            try
            {
                scroll = EditorGUILayout.BeginScrollView(scroll);
                {
                    EditorGUILayout.Space();

                    preset.name = EditorGUILayout.TextField(Strings.Presets.presetName, preset.name);

                    Helpers.DrawGUILine();

                    PumkinsAvatarTools.DrawAvatarSelectionWithButton(false, false);

                    Helpers.DrawGUILine();

                    preset.presetMode = (PumkinsPosePreset.PosePresetMode)EditorGUILayout.EnumPopup(Strings.Presets.poseMode, preset.presetMode);

                    Helpers.DrawGUILine();

                    if (GUILayout.Button(Strings.Buttons.openPoseEditor, Styles.BigButton))
                    {
                        PumkinsMuscleEditor.ShowWindow();
                    }

                    Helpers.DrawGUILine();

                    EditorGUI.BeginDisabledGroup(!PumkinsAvatarTools.SelectedAvatar || !preset || string.IsNullOrEmpty(preset.name));
                    {
                        if (!editingExistingPreset)
                        {
                            _overwriteFile = GUILayout.Toggle(_overwriteFile, Strings.Presets.overwriteFile);
                            if (GUILayout.Button(Strings.Buttons.savePreset, Styles.BigButton))
                            {
                                preset.SetupPreset(preset.name, PumkinsAvatarTools.SelectedAvatar, preset.presetMode);
                                if (preset)
                                {
                                    EditorApplication.delayCall += () =>
                                    {
                                        preset.SavePreset(_overwriteFile);
                                        Close();
                                    };
                                }
                            }
                        }
                    }
                    EditorGUI.EndDisabledGroup();
                }
                EditorGUILayout.EndScrollView();
                CreatePresetPopupBase.preset = preset;
            }
            catch
            {
                if (this)
                {
                    Close();
                }
            }
        }