启动Unity发布的exe并且添加启动参数
在启动Unity的时候添加一些启动的参数。
代码解释
在启动的时候获取的启动参数如果没有获取到正确的启动参数那么就退出程序,这个代码仅仅在发布到windows之后才会生效,在编辑器下这个代码虽然会获取到参数但是不能保证是你想要的东西。
在编辑模式下按下play获取到的参数是:
发布之后可以是用Process启动并且添加参数
internal class Program{static void Main(string[] args){StartProcessWithArguments();Console.Read();}public static void StartProcessWithArguments(){string exePath = @"E:\UnityProgram\UnityProgram_Study\StartUnityByCmd\Build_windows\StartUnityByCmd.exe"; // 应用程序路径string argument1 = "input.txt";string argument2 = "output.txt";ProcessStartInfo startInfo = new ProcessStartInfo(exePath);startInfo.Arguments = $"{argument1} {argument2}";Process process = new Process();process.StartInfo = startInfo;process.Start();Console.Read();Console.Read();Console.Read();}}
Unity的代码
public class NewBehaviourScript : MonoBehaviour
{public Text textInfo;public Button closeButton;private void Start(){List<string> arguments = new List<string>(System.Environment.GetCommandLineArgs());if (arguments.Count <= 1) // 通常第一个参数是.exe文件本身,所以这里我们只检查是否有额外的参数{textInfo.text = "没有获取到启动参数";closeButton.gameObject.SetActive(true); // 显示关闭按钮}else{int i = 1; // 参数索引从1开始,因为0通常是可执行文件路径foreach (string arg in arguments){textInfo.text += "参数" + i + ":" + arg + ";\r\n";i++;}}}public void OnCloseClick(){Application.Quit(); // 点击关闭按钮时退出应用}
}
可以显示出传递的参数
使用cmd 启动并传递参数