Exemple #1
0
        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;
        }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
        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);
            }
        }
Exemple #4
0
        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);
        }
Exemple #5
0
 public DefaultsEditor(InputControllerDefault inputControllerDefault)
 {
     target = inputControllerDefault;
 }