В моем Unity Project я запускаю внешнее простое консольное приложение c ++.
Моё консольное приложение c ++:
#include "pch.h"
#include <iostream>
int main(int argc, char *argv[], char *envp)
{
// Display each command-line argument.
int count;
std::cout << "\nCommand-line arguments:\n";
for (count = 0; count < argc; count++)
std::cout << " argv[" << count << "] "
<< argv[count] << "\n";
std::cout << "Hello World!\n";
getchar();
return 0;
}
Как видите, приложение отображает имяаргументы переданы, и если я запускаю приложение вручную, оно выглядит следующим образом:
Но когда я запускаю то же приложение из Unity, консольное приглашение пусто ,Вот как я запускаю приложение c ++ из Unity:
using UnityEngine;
using System;
using System.IO;
using System.Diagnostics;
public class Launcher : MonoBehaviour {
Process process = null;
private void Start()
{
StartProcess();
}
void StartProcess()
{
try
{
process = new Process();
process.EnableRaisingEvents = false;
process.StartInfo.FileName = Application.dataPath + "/ConsoleTestApplication.exe";
process.StartInfo.Arguments = "1 1 1"; //Without passing arguments, it also appears empty
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardInput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
process.BeginOutputReadLine();
UnityEngine.Debug.Log("Successfully launched app");
}
catch (Exception e)
{
UnityEngine.Debug.LogError("Unable to launch app: " + e.Message);
}
}
}
Приложение запускается, и появляется окно консоли, совершенно пустое, есть идеи о том, что я делаю неправильно?Спасибо.