【发布时间】:2014-10-31 16:22:09
【问题描述】:
我一直在尝试使用 SharpDX.DirectInput dll 将 DirectInput 实现为统一,但是当我创建操纵杆时,它给了我一个错误:
SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: The parameter is incorrect.
这是我的代码:
using System;
using UnityEngine;
using SharpDX.DirectInput;
namespace KurdifyEngine.Input
{
static class Direct
{
public static DirectInput directInput;
public static Guid directGuid;
public static Joystick directGamepad ;
internal static void Initialize()
{
// Initialize DirectInput
directInput = new DirectInput();
directGuid = Guid.Empty;
DirectUpdate();
}
internal static void DirectUpdate()
{
// search for Gamepad
foreach (var deviceInstance in directInput.GetDevices(SharpDX.DirectInput.DeviceType.Gamepad, DeviceEnumerationFlags.AttachedOnly))
directGuid = deviceInstance.InstanceGuid;
}
if (directGuid != Guid.Empty)
{
directGamepad = new Joystick(directInput, directGuid);
}
}
}
}
创建操纵杆时发生错误:
directGamepad = new Joystick(directInput, directGuid);
【问题讨论】:
-
我怀疑您能否将 SharpDX(一个渲染框架/游戏引擎)与 Unity(一个渲染框架/游戏引擎)混合使用。为什么还要打扰? Unity 内置了对操纵杆/游戏手柄的支持,如果这还不够,您可以在资源商店中找到更好的支持。
-
它适用于其他人,并且内置支持缺乏很多功能,我已经支持 XInput,运行时键绑定,我只是想知道如何自己实现它,我不想依赖资产商店资产。
标签: unity3d sharpdx directinput gamepad gamepad-api