public void ShowGUI() { EditorGUILayout.BeginVertical("Button"); setDefaultParameterValues = EditorGUILayout.Toggle("Set default parameters?", setDefaultParameterValues); if (setDefaultParameterValues && Animator.runtimeAnimatorController) { GUILayout.Box(string.Empty, GUILayout.ExpandWidth(true), GUILayout.Height(1)); int numParameters = Animator.parameters.Length; if (numParameters < defaultAnimParameters.Count) { defaultAnimParameters.RemoveRange(numParameters, defaultAnimParameters.Count - numParameters); } else if (numParameters > defaultAnimParameters.Count) { if (numParameters > defaultAnimParameters.Capacity) { defaultAnimParameters.Capacity = numParameters; } for (int i = defaultAnimParameters.Count; i < numParameters; i++) { defaultAnimParameters.Add(new DefaultAnimParameter()); } } for (int i = 0; i < Animator.parameters.Length; i++) { AnimatorControllerParameter parameter = Animator.parameters[i]; switch (parameter.type) { case AnimatorControllerParameterType.Bool: bool boolValue = (defaultAnimParameters[i].intValue == 1); boolValue = EditorGUILayout.Toggle(parameter.name, boolValue); defaultAnimParameters[i] = new DefaultAnimParameter((boolValue) ? 1 : 0); break; case AnimatorControllerParameterType.Float: float floatValue = EditorGUILayout.FloatField(parameter.name, defaultAnimParameters[i].floatValue); defaultAnimParameters[i] = new DefaultAnimParameter(floatValue); break; case AnimatorControllerParameterType.Int: int intValue = EditorGUILayout.IntField(parameter.name, defaultAnimParameters[i].intValue); defaultAnimParameters[i] = new DefaultAnimParameter(intValue); break; } } } EditorGUILayout.EndVertical(); }
public void ShowGUI() { EditorGUILayout.BeginVertical("Button"); saveController = EditorGUILayout.ToggleLeft("Save change in Controller?", saveController); setDefaultParameterValues = EditorGUILayout.ToggleLeft("Set default parameters?", setDefaultParameterValues); if (setDefaultParameterValues) { if (!UnityVersionHandler.IsPrefabEditing(gameObject) && !UnityVersionHandler.ObjectIsInActiveScene(gameObject)) { EditorGUILayout.HelpBox("To view/edit parameters, the GameObject must be active in the scene.", MessageType.Warning); } else if (Animator.parameters != null) { GUILayout.Box(string.Empty, GUILayout.ExpandWidth(true), GUILayout.Height(1)); int numParameters = Animator.parameters.Length; if (numParameters < defaultAnimParameters.Count) { defaultAnimParameters.RemoveRange(numParameters, defaultAnimParameters.Count - numParameters); } else if (numParameters > defaultAnimParameters.Count) { if (numParameters > defaultAnimParameters.Capacity) { defaultAnimParameters.Capacity = numParameters; } for (int i = defaultAnimParameters.Count; i < numParameters; i++) { defaultAnimParameters.Add(new DefaultAnimParameter()); } } for (int i = 0; i < Animator.parameters.Length; i++) { AnimatorControllerParameter parameter = Animator.parameters[i]; switch (parameter.type) { case AnimatorControllerParameterType.Bool: bool boolValue = (defaultAnimParameters[i].intValue == 1); boolValue = EditorGUILayout.Toggle(parameter.name, boolValue); defaultAnimParameters[i] = new DefaultAnimParameter((boolValue) ? 1 : 0); break; case AnimatorControllerParameterType.Float: float floatValue = EditorGUILayout.FloatField(parameter.name, defaultAnimParameters[i].floatValue); defaultAnimParameters[i] = new DefaultAnimParameter(floatValue); break; case AnimatorControllerParameterType.Int: int intValue = EditorGUILayout.IntField(parameter.name, defaultAnimParameters[i].intValue); defaultAnimParameters[i] = new DefaultAnimParameter(intValue); break; } } } } EditorGUILayout.EndVertical(); }