private static void AddInputDefaultsToBuild() { InputControllerDefault[] defaults = InputBuildingUtility.ImportDefaultInputs(false); BuildTarget targetPlatform = EditorUserBuildSettings.activeBuildTarget; RuntimePlatform runtimePlatform = buildTargetToRuntimePlatform[targetPlatform]; InputControllerDefault platformDefault = defaults.FirstOrDefault(x => x.runtimePlatform == runtimePlatform); if (platformDefault == null) { platformDefault = defaults.FirstOrDefault(x => x.runtimePlatform == Application.platform); if (platformDefault != null) { Debug.LogWarning("No input default config found for " + System.Enum.GetName(typeof(RuntimePlatform), runtimePlatform) + ". It is highly sugggested you make a default for this platform otherwise it will default to the editors defaults."); } else { Debug.LogError("No input defaults found for target platform nor editor, " + "no default inputs will be included and the flexinput will fail to work." + "\nAdd a default input for the target platform and the editor."); return; } } assetSavePath = AssetDatabase.GenerateUniqueAssetPath("Assets/platformDefault.asset"); AssetDatabase.CreateAsset(platformDefault, assetSavePath); BuildProcessing.BuildingStopped += CleanUpAssetCreated; }
public void OnEnable() { InputControllerDefault inputControllerDefault = (InputControllerDefault)target; if (inputControllerDefault.InputControllerType == null) { inputControllerDefault.InputControllerType = ICCS[0]; switch (Application.platform) { case RuntimePlatform.WindowsEditor: inputControllerDefault.runtimePlatform = RuntimePlatform.WindowsPlayer; inputControllerDefault.inputController = (InputController)Activator.CreateInstance(ICCS[0]); break; case RuntimePlatform.LinuxEditor: inputControllerDefault.runtimePlatform = RuntimePlatform.LinuxPlayer; inputControllerDefault.inputController = (InputController)Activator.CreateInstance(ICCS[0]); break; case RuntimePlatform.OSXEditor: inputControllerDefault.runtimePlatform = RuntimePlatform.OSXPlayer; inputControllerDefault.inputController = (InputController)Activator.CreateInstance(ICCS[0]); break; default: inputControllerDefault.runtimePlatform = RuntimePlatform.WindowsPlayer; inputControllerDefault.inputController = (InputController)Activator.CreateInstance(ICCS[0]); break; } inputControllerDefault.inputController.InitializeControls(); } }
public void PlatformDefaultsGUI(InputControllerDefault inputControllerDefault) { EditorGUI.BeginChangeCheck(); RuntimePlatform newRuntimePlatform = (RuntimePlatform)EditorGUILayout.EnumPopup("Platform", inputControllerDefault.runtimePlatform); if (EditorGUI.EndChangeCheck() && inputControllerDefault.runtimePlatform != newRuntimePlatform) { Undo.RegisterCompleteObjectUndo(target, "Changed Input Platform"); inputControllerDefault.runtimePlatform = newRuntimePlatform; inputControllerDefault.inputController = (InputController)Activator.CreateInstance(inputControllerDefault.InputControllerType); } EditorGUILayout.LabelField("Buttons", EditorStyles.miniBoldLabel); for (int i = 0; i < inputControllerDefault.inputController.ButtonMaps.Length; i++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(inputControllerDefault.inputController.ButtonMaps[i].Name, GUILayout.MinWidth(144)); ButtonMapsGUI(inputControllerDefault.inputController.ButtonMaps[i], newRuntimePlatform); EditorGUILayout.EndHorizontal(); } for (int i = 0; i < inputControllerDefault.inputController.AxisMaps.Length; i++) { EditorGUILayout.LabelField(inputControllerDefault.inputController.AxisMaps[i].Name, GUILayout.MinWidth(144)); AxisMapsGUI(inputControllerDefault.inputController.AxisMaps[i], newRuntimePlatform); } for (int i = 0; i < inputControllerDefault.inputController.DualAxisMaps.Length; i++) { EditorGUILayout.LabelField(inputControllerDefault.inputController.DualAxisMaps[i].Name, GUILayout.MinWidth(144)); DualAxisMapsGUI(inputControllerDefault.inputController.DualAxisMaps[i], newRuntimePlatform); } }
public void OnInspectorGUI() { InputControllerDefault targ = (InputControllerDefault)target; EditorGUI.BeginChangeCheck(); FilterGUI(); Type controllerSelection = ICCS[EditorGUILayout.Popup("Controller Class", ICCS.IndexOf(targ.InputControllerType), ICCS.Select(x => x.FullName).ToArray())]; if (EditorGUI.EndChangeCheck()) { Undo.RegisterCompleteObjectUndo(targ, "Changed Controller Selection"); targ.InputControllerType = controllerSelection; EditorUtility.SetDirty(targ); } PlatformDefaultsGUI(targ); }
public DefaultsEditor(InputControllerDefault inputControllerDefault) { target = inputControllerDefault; }