У меня есть поток-член для работающего объекта, который также содержит RawGameController.
Поток находится в цикле while и должен постоянно обновлять проверку контроллера, но когда я проверяю значения, ничего не меняется. Я могу подтвердить, что контроллер есть в Windows, и кнопки работают. (это проводной xbox 360, но он должен поддерживать много разных контроллеров, поэтому я не могу использовать объект Gamepad.)
public class myController
{
public RawGameController rgController;
public Thread Poller;
public void ControllerPoller()
{
bool[] buttonArray = new bool[rgController.ButtonCount];
GameControllerSwitchPosition[] switchArray = new GameControllerSwitchPosition[rgController.SwitchCount];
double[] axisArray = new double[rgController.AxisCount];
bool[] oldButtonArray = new bool[rgController.ButtonCount];
GameControllerSwitchPosition[] oldSwitchArray = new GameControllerSwitchPosition[rgController.SwitchCount];
double[] oldAxisArray = new double[rgController.AxisCount];
while (true)
{
//roughly polling 60hz so...
using (var waitHandle = new ManualResetEventSlim(initialState: false))
{
waitHandle.Wait(TimeSpan.FromMilliseconds(1000 / 60));
}
rgController.GetCurrentReading(buttonArray, switchArray, axisArray);
if (buttonArray.Equals(oldButtonArray) && switchArray.Equals(oldSwitchArray) && axisArray.Equals(oldAxisArray))
{
continue;
}
Затем я занимаюсь изменениями ввода.
Любая помощь будет здорово.