Unity-打开另一个exe可执行程序并传入参数

Posted StubbrnStar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity-打开另一个exe可执行程序并传入参数相关的知识,希望对你有一定的参考价值。

之前有做过一个项目,通过外部exe可执行打开另一个exe可执行程序,并通过传入不同参数来加载不同场景,本章通过一个Unity案例来讲解如果传入参数和获取参数并进行处理。

一、打开exe可执行程序并传入参数

1、首先新建两个工程,这里我以TransferParameter项目做传入参数,以ReceiveParameter项目做接收参数,本案例使用Unity 2019.4.8制作。

2、搭建UI


3、新建Script脚本TransferParameter,并挂载在Canvas上,讲输入框与按钮拖入其中。

using System.Diagnostics;
using UnityEngine;
using UnityEngine.UI;

public class TransferParameter : MonoBehaviour

    public InputField inputField;           //输入框
    public Button button;                   //按钮

    private void Start()
    
        //添加事件-打开exe可执行程序并传入参数
        button.onClick.AddListener(() => 
        
            Process process = new Process();
            process.StartInfo.FileName = "C://ReceiveParameter/ReceiveParameter.exe";
            process.StartInfo.Arguments = inputField.text;
            process.StartInfo.UseShellExecute = true;
            process.Start();
        );
    

这里就以绝对路径来表示,此路径为ReceiveParameter打包出来后的可执行程序,放置在C盘根目录。到此这部分已经结束,我们开始第二部分。

二、获取参数并处理

1、搭建场景和UI,新建Game1和Game2场景,并添加到Build Settings内部
这里比较简单,直接用text来表示当前进入的场景,主要目的是获取到传入的参数


2、新建Script脚本ReceiveParameter,并挂载在Start场景的主相机上。

using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.SceneManagement;

public class ReceiveParameter : MonoBehaviour

    private void Start()
    
        List<string> commandLineArgs = new List<string>(Environment.GetCommandLineArgs());

        //取索引为>=1的部分 index=0的值为文件路径信息 
        string sceneName = commandLineArgs[1];

        if (sceneName.Equals("Game1"))
        
            SceneManager.LoadScene("Game1");
        
        else if (sceneName.Equals("Game2"))
        
            SceneManager.LoadScene("Game2");
        
    

3、打包并放入C盘根目录,名称需要和设置的路径一直。

三、运行结果


后面会利用此功能实现利用VS Form或Unity传入json并解析进行处理

以上是关于Unity-打开另一个exe可执行程序并传入参数的主要内容,如果未能解决你的问题,请参考以下文章

MFC——快速创建选择框

C#中怎么用process调用一个exe文件并传入参数?

c语言如何把c程序编译成可执行的exe文件

怎么生成exe文件

C#中怎么用process调用一个exe文件并传入参数?

CMD调用Python编译的exe程序--02