using UnityEngine; using UnityEditor; using UnityEditorInternal; using System; using System.IO; using System.Collections; namespace XboxCtrlrInput.Editor { static class InputManagerReplacer { [MenuItem("Window/XboxCtrlrInput/Replace InputManager.asset...")] static void ReplaceInputManagerAsset() { if (!EditorUtility.DisplayDialog("XboxCtrlrInput", "This will replace ProjectSettings/InputManager.asset (a backup file will be created)", "Continue", "Cancel")) { return; } DirectoryInfo assetsDirectory = new DirectoryInfo("Assets"); if (!assetsDirectory.Exists) { Debug.LogError("Can't resolve 'Assets' directory"); return; } string projectSettingsPath = Path.Combine(assetsDirectory.Parent.FullName, "ProjectSettings"); if (!Directory.Exists(projectSettingsPath)) { Debug.LogError("Can't resolve 'ProjectSettings' directory"); return; } string settingsFilename = EditorSettings.serializationMode == SerializationMode.ForceText ? "InputManagerText": "InputManagerBinary"; string settingsFile = Path.Combine("Assets/Editor/XboxCtrlrInput/InputManager Copies", settingsFilename); if (!File.Exists(settingsFile)) { Debug.LogError("Can't resolve '" + settingsFile + "' file"); return; } string originalSettingsFile = Path.Combine(projectSettingsPath, "InputManager.asset"); string backupSettingsFile = originalSettingsFile + ".bak"; File.Copy(originalSettingsFile, backupSettingsFile); File.Copy(settingsFile, originalSettingsFile, true); Debug.Log("Backup file: " + backupSettingsFile); } } }