В моем Unity Project я запускаю внешнее простое консольное приложение на c ++.
My 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);
}
}
}
Приложение запускается, и появляется окно консоли, совершенно пустое, есть идеи о том, что я делаю неправильно? Благодарю.
Задача ещё не решена.
Других решений пока нет …