void OnEnable() { HumanMuscle script = target as HumanMuscle; if (EditorApplication.isPlaying && script.enabled) { transGUI.Reset(script.Position, script.Angle); } }
public override void OnInspectorGUI() { HumanMuscle script = target as HumanMuscle; if (!EditorApplication.isPlaying) { script.animator = (Animator)EditorGUILayout.ObjectField("Animator", script.animator, typeof(Animator), true); script.scriptableObject = (HumanMuscleScriptableObject)EditorGUILayout.ObjectField("ScriptableObject", script.scriptableObject, typeof(HumanMuscleScriptableObject), true); } else { menuName = (MenuName)EditorGUILayout.EnumPopup("MenuName", menuName); switch (menuName) { case MenuName.All: ViewAllMenu(script); break; case MenuName.Body: ViewBodyMenu(script); break; case MenuName.Finger: ViewFingerMenu(script); break; } if (menuName == MenuName.All || boneName == RootBone.GetInstance()) { // 位置と角度 script.Position = transGUI.Position(script.Position); script.Angle = transGUI.Angle(); } else { if (boneName != null) { foreach (var key in boneName.Muscles) { var id = (HumanMuscleKey)key.Id; script[id] = EditorGUILayout.Slider((id).ToString(), script[id], -1, 1); } // 反転コピー if (GUILayout.Button("Mirror")) { boneName.Mirror(script.Muscles); } } } } EditorUtility.SetDirty(target); }
private void ViewAllMenu(HumanMuscle script) { if (GUILayout.Button("GetHumanPose")) { script.GetHumanPose(); } for (int i = 0; i < Enum.GetNames(typeof(HumanMuscleKey)).Length; i++) { script.Pose.muscles[i] = EditorGUILayout.Slider(Enum.GetName(typeof(HumanMuscleKey), i), script.Pose.muscles[i], -1, 1); } }
private void ViewFingerMenu(HumanMuscle script) { GUILayout.BeginHorizontal(); BoneNameButton(ThumbLeftBone.GetInstance()); BoneNameButton(IndexLeftBone.GetInstance()); BoneNameButton(MiddleLeftBone.GetInstance()); BoneNameButton(RingLeftBone.GetInstance()); BoneNameButton(LittleLeftBone.GetInstance()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoneNameButton(ThumbRightBone.GetInstance()); BoneNameButton(IndexRightBone.GetInstance()); BoneNameButton(MiddleRightBone.GetInstance()); BoneNameButton(RingRightBone.GetInstance()); BoneNameButton(LittleRightBone.GetInstance()); GUILayout.EndHorizontal(); }
private void ViewBodyMenu(HumanMuscle script) { GUILayout.BeginHorizontal(); EditorGUILayout.Space(); BoneNameButton(HeadBone.GetInstance(), 100); EditorGUILayout.Space(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); EditorGUILayout.Space(); BoneNameButton(ShoulderLeftBone.GetInstance()); BoneNameButton(NeckBone.GetInstance(), 80); BoneNameButton(ShoulderRightBone.GetInstance()); EditorGUILayout.Space(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoneNameButton(UpperArmLeftBone.GetInstance()); EditorGUILayout.Space(); BoneNameButton(UpperChestBone.GetInstance(), 100); EditorGUILayout.Space(); BoneNameButton(UpperArmRightBone.GetInstance()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoneNameButton(LowerArmLeftBone.GetInstance()); EditorGUILayout.Space(); BoneNameButton(ChestBone.GetInstance(), 100); EditorGUILayout.Space(); BoneNameButton(LowerArmRightBone.GetInstance()); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoneNameButton(HandLeftBone.GetInstance(), 100); EditorGUILayout.Space(); BoneNameButton(SpineBone.GetInstance(), 100); EditorGUILayout.Space(); BoneNameButton(HandRightBone.GetInstance(), 100); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); EditorGUILayout.Space(); BoneNameButton(RootBone.GetInstance(), 100); EditorGUILayout.Space(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); EditorGUILayout.Space(); BoneNameButton(UpperLegLeftBone.GetInstance(), 150); BoneNameButton(UpperLegRightBone.GetInstance(), 150); EditorGUILayout.Space(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); EditorGUILayout.Space(); BoneNameButton(LowerLegLeftBone.GetInstance(), 150); EditorGUILayout.Space(); BoneNameButton(LowerLegRightBone.GetInstance(), 150); EditorGUILayout.Space(); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoneNameButton(FootLeftBone.GetInstance(), 150); EditorGUILayout.Space(); BoneNameButton(FootRightBone.GetInstance(), 150); GUILayout.EndHorizontal(); GUILayout.BeginHorizontal(); BoneNameButton(ToesLeftBone.GetInstance(), 150); EditorGUILayout.Space(); BoneNameButton(ToesRightBone.GetInstance(), 150); GUILayout.EndHorizontal(); }