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可执行程序并传入参数的主要内容,如果未能解决你的问题,请参考以下文章