首先重点:unity发布的exe启动时读取启动本exe时带的参数:
string[] arguments = Environment.GetCommandLineArgs();
正常来讲数组的第一个是启动路径,第二个就是参数(发布后)编辑器下会多想些 最后一个就是参数
unity启动外部程序并发送参数
System.Diagnostics.Process.Start( @"D:\build2.15\Test.exe", "参数~");
unity程序A想启动unity程序B时 上边的方法如果不好使,可以用这边这种
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"D:\build2.15\Test.exe";
psi.UseShellExecute = false;
psi.WorkingDirectory = @"D:\build2.15";
psi.CreateNoWindow = true;
psi.Arguments = "我是参数~";
Process.Start(psi);
或者直接在命令行里敲出来:
win+R 输入cmd呼出窗口,填下路径 +空格+参数 如下
回车启动;
完整代码
场景挂上脚本将button和text手动拖拽一下
using System;
using System.Diagnostics;
using UnityEngine;
using UnityEngine.UI;
public class WDBase : MonoBehaviour
{
public Text showtext;
public Button start;
public void Start()
{
//获取启动参数
string[] arguments = Environment.GetCommandLineArgs();
//展示启动参数
foreach (string arg in arguments)
{
showtext.text += arg.ToString() + ";\n";
}
start.onClick.AddListener(delegate
{
UnityEngine.Debug.LogError("按下S");
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = @"D:\build2.15\Test.exe";
psi.UseShellExecute = false;
psi.WorkingDirectory = @"D:\build2.15";
psi.CreateNoWindow = true;
psi.Arguments = "我是参数~";
Process.Start(psi);
});
}
}