Unity3D啟動外部程序並傳遞參數


之前開發項目,一直都使用的是外殼程序加子程序的模式,通過外殼程序去啟動子程序,外殼程序和子程序之間的通信,是使用配置文件完成的。

我總覺得這樣通信很麻煩,因為外殼程序需要對配置文件進行更改和寫入,然后子程序又要讀取信息。而且整合的時候,會導致有很多配置文件,而且需要對路徑做很多處理和限制。

我發現Process.Start()函數中,是可以傳遞參數的。

也就是說,我們是可以在使用Process.Start()函數啟動外部程序時,傳遞參數的進行通信的。

具體操作如下:

public void StartEXE()
    {
        ProcessStartInfo processStartInfo = new ProcessStartInfo();
        processStartInfo.FileName = "C:/Users/Administrator/Desktop/Test/Demo.exe";
        processStartInfo.Arguments = "啟動 程序 1 2  3";
        Process.Start(processStartInfo);
    }

需要注意的是,如果存在多個參數的話,參數之間需要使用空格進行分隔。

外殼程序已經傳遞了參數,那么子程序如何接受參數呢?具體操作如下:

private void Start()
    {
        string[] args = Environment.GetCommandLineArgs();
        text.text = args.Length.ToString();
        for (int i = 0; i < args.Length; i++)
        {
            text.text += "\n" + "Arg" + i + ":  " + args[i];
        }
    }

我將所有的參數信息,打印在了一個Text上面。運行效果圖如下:

很簡單的一個知識點,有封裝好的API可以直接使用,在這里記錄一下,忘了的時候可以打開看一看。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM