public static IEnumerable <UnityProcessInfo> GetAttachableProcesses(string targetName) { var match = Regex.Match(targetName, "\\(([0-9]+)\\)"); var processId = -1; if (match.Success) { processId = Convert.ToInt32(match.Groups[1].Value); targetName = targetName.Substring(0, targetName.IndexOf("(") - 1); } UnityProcessDiscovery.GetProcessOptions options = UnityProcessDiscovery.GetProcessOptions.All; if (!targetNameToProcessName.TryGetValue(targetName.ToLower(), out var processName)) { processName = targetName; } else { options = processName == "Unity Editor" ? UnityProcessDiscovery.GetProcessOptions.Editor : UnityProcessDiscovery.GetProcessOptions.Players; } var processes = UnityProcessDiscovery.GetAttachableProcesses(options); processes.ForEach(p => Log.Write("Found Unity process: " + p.Name + " (" + p.Id + ")")); return(processId == -1 ? processes.Where(p => p.Name.Contains(processName)) : processes.Where(p => p.Name.Contains(processName) && p.Id == processId)); }
public static IEnumerable <UnityProcessInfo> GetAttachableProcesses(string targetName) { string processName; if (!targetNameToProcessName.TryGetValue(targetName.ToLower(), out processName)) { return(null); } UnityProcessDiscovery.GetProcessOptions options = UnityProcessDiscovery.GetProcessOptions.All; if (processName == "Unity Editor") { options = UnityProcessDiscovery.GetProcessOptions.Editor; } else { options = UnityProcessDiscovery.GetProcessOptions.Players; } var processes = UnityProcessDiscovery.GetAttachableProcesses(options); processes.ForEach(p => Log.Write("Found Unity process: " + p.Name + " (" + p.Id + ")")); return(processes.Where(p => p.Name.Contains(processName))); }
public static IEnumerable <UnityProcessInfo> GetAttachableProcesses(string targetName) { var match = Regex.Match(targetName, "\\(([0-9]+)\\)"); var processId = -1; if (match.Success) { processId = Convert.ToInt32(match.Groups[1].Value); targetName = targetName.Substring(0, targetName.IndexOf("(") - 1); } UnityProcessDiscovery.GetProcessOptions options = UnityProcessDiscovery.GetProcessOptions.All; if (!targetNameToProcessName.TryGetValue(targetName.ToLower(), out var processName)) { processName = targetName; } else { options = processName == "Unity Editor" ? UnityProcessDiscovery.GetProcessOptions.Editor : UnityProcessDiscovery.GetProcessOptions.Players; } Log.Write($"Trying to find all {options}"); var processes = UnityProcessDiscovery.GetAttachableProcesses(options); processes.ForEach(p => Log.Write("Found Unity process: " + p.Name + " (" + p.Id + ")")); var resProcesses = processId == -1 ? processes.Where(p => p.Name.Contains(processName)).ToArray() : processes.Where(p => p.Name.Contains(processName) && p.Id == processId).ToArray(); if (resProcesses.Length == 0) { Log.Write($"Could not find the correct process name: {targetName}"); Log.Write("These are the one that could be found: "); processes = UnityProcessDiscovery.GetAttachableProcesses(); processes.ForEach(process => Log.Write($"{process.Name} : {process.Id}")); } return(resProcesses); }