Итак, я получил это в конце концов.Спасибо @Hristo и @Programmer за помощь и комментарии.Очень признателен.Вот последний код, который запускает консольное приложение и отправляет ключи.Если у кого-то возникнут вопросы или понадобится более подробная информация, сообщите мне об этом по почте или сообщению, и я опубликую больше об этом.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Diagnostics;
using System.Threading;
using UnityEngine.UI;
using UnityStandardAssets.CrossPlatformInput;
public class Camera_controller : MonoBehaviour {
public int caminterrupt;
private IEnumerator coroutine;
// Use this for initialization
void Start () {
caminterrupt = 0;
coroutine = startcamera();
}
// Update is called once per frame
void Update () {
}
public void button1(string pressed)
{
if (caminterrupt == 0)
{
caminterrupt = 1;
StartCoroutine(coroutine);
}
else
{ caminterrupt = 0;
StopCoroutine("coroutine");
}
}
public IEnumerator startcamera() {
//string strOutput;
//Starting Information for process like its path, use system shell i.e.
control process by system etc.
ProcessStartInfo psi = new
ProcessStartInfo(@"C:\ConsoleExample\bin\Debug\ConsoleExample.exe");
// its states that system shell will not be used to control the process
instead program will handle the process
psi.UseShellExecute = false;
psi.ErrorDialog = false;
// Do not show command prompt window separately
//psi.CreateNoWindow = true;
//psi.WindowStyle = ProcessWindowStyle.Hidden;
//redirect all standard inout to program
psi.RedirectStandardError = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
//create the process with above infor and start it
Process plinkProcess = new Process();
plinkProcess.StartInfo = psi;
plinkProcess.Start();
//link the streams to standard inout of process
StreamWriter myStream = new
StreamWriter(plinkProcess.StandardInput.BaseStream, Encoding.ASCII);
//send command to cmd prompt and wait for command to execute with thread
sleep
refire:
if (caminterrupt == 1)
{
myStream.WriteLine("y");
yield return new WaitForSeconds(1);
goto refire;
}
if (caminterrupt == 0)
{
myStream.WriteLine("e");
}
myStream.WriteLine("e");
// flush the input stream before sending exit command to end process for
any unwanted characters
myStream.Close();
plinkProcess.Close();
caminterrupt = 0;
}
}
Это сторона Unity, которая вызывает файл консоли и взаимодействует путем отправки ключевых команд.