欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Unity3D启动外部程序并传递参数的实现

程序员文章站 2022-03-25 12:53:31
之前开发项目,一直都使用的是外壳程序加子程序的模式,通过外壳程序去启动子程序,外壳程序和子程序之间的通信,是使用配置文件完成的。我总觉得这样通信很麻烦,因为外壳程序需要对配置文件进行更改和写入,然后子...

之前开发项目,一直都使用的是外壳程序加子程序的模式,通过外壳程序去启动子程序,外壳程序和子程序之间的通信,是使用配置文件完成的。

我总觉得这样通信很麻烦,因为外壳程序需要对配置文件进行更改和写入,然后子程序又要读取信息。而且整合的时候,会导致有很多配置文件,而且需要对路径做很多处理和限制。

我发现process.start()函数中,是可以传递参数的。

Unity3D启动外部程序并传递参数的实现

也就是说,我们是可以在使用process.start()函数启动外部程序时,传递参数的进行通信的。

具体操作如下:

需要注意的是,如果存在多个参数的话,参数之间需要使用空格进行分隔。

外壳程序已经传递了参数,那么子程序如何接受参数呢?具体操作如下:

我将所有的参数信息,打印在了一个text上面。运行效果图如下:

Unity3D启动外部程序并传递参数的实现

补充:unity3d:启动外部exe传参以及设置窗口位置和大小

好久没有更新博客了,最近项目上没有太大的突破,也没有涉及到新东西,所以想写博客,但是无奈没有新东西,好在最近有点新的功能要做,之前也做过,但是并没有整理成博客,现在就记录一下。省的还要去百度找。(最近好像新的unity版本不能破解了,官网有时候也上不去,不知道unity要搞什么东东。)

今天要说的是unity启动外部exe,并且传递参数,改变外部exe窗口位置以及窗口大小。启动exe这个百度搜一大堆,主要是怎么设置窗口位置及大小。窗口大小的方法unity有自己的方法,但是位置就没法设置了,我今天用的方法是windows原生的方法。需要引用user32.dll。

废话不多说了,下面上代码

上面的代码里我传的参数是json格式的,在start里启动一个exe,在awake里接收参数,设置窗口位置以及大小。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。