我目前正在我的Grad项目上工作,它是一个自动驾驶仪,我正在统一制作飞机,而所有机器学习内容都在python中制作,python代码将仅返回飞机将“上,下,左,右,引擎加电,...),C#代码将处理所有物理问题,依此类推,因此我想模拟一下,如果(左)则计算机将按(A)。
我已经尝试了inputsimulator,但仅此而已。
string t = GUIUtility.systemCopyBuffer; // this will get the input from python
if (t=="left") // if what the neural network choose is left do this
{
//what I need to convert the "left" to an actual keyboard press to
//be used by the crossplatformmanager
}
float roll = CrossPlatformInputManager.GetAxis("Horizontal");
我希望:
if (t=="left")
{
keyboardbutton="A"
}
,并且CrossPlatformInputManager.GetAxis
会像我物理按下该键一样对待它。
答案 0 :(得分:0)
我认为这是一个XY问题,通常对于无法控制的程序需要输入仿真,因为您无法直接访问代码。但是对于您的问题,python和unity项目都是由您自己编写的,因此您无需模拟输入,只需调用该方法即可。
例如,如果您想通过水平轴输入来滚动某物,则可以这样做:
var h = Input.GetAxis("Horizontal");
Roll(h);
然后,如果值来自剪贴板:
float h;
string t = GUIUtility.systemCopyBuffer;
switch(t) {
case "left": h = -1f; break;
case "right": h = 1f; break;
....
}
Roll(h);