Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d SharpDX。统一的直接输入_Unity3d_Sharpdx_Directinput_Gamepad_Gamepad Api - Fatal编程技术网

Unity3d SharpDX。统一的直接输入

Unity3d SharpDX。统一的直接输入,unity3d,sharpdx,directinput,gamepad,gamepad-api,Unity3d,Sharpdx,Directinput,Gamepad,Gamepad Api,我一直试图使用SharpDX.DirectInput DLL将DirectInput实现到unity中,但当我创建操纵杆时,它给了我一个错误: SharpDXException: HRESULT: [0x80070057], Module: [General], ApiCode: [E_INVALIDARG/Invalid Arguments], Message: The parameter is incorrect. 这是我的代码: using System; using UnityEngi

我一直试图使用SharpDX.DirectInput DLL将DirectInput实现到unity中,但当我创建操纵杆时,它给了我一个错误:

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);

我们一直在为Unity产品开发异国情调的控制器支持,但在同一条生产线上遇到了相同的问题(SharpDXException:HRESULT:[0x80070057])

我们试图通过修复SharpDX来重新编译它,就像在github帖子中解释的那样:但是在DirectX(2010年6月)SDK中遇到了其他问题


我们刚刚找到了一种使用该项目中包含的库编译Unity项目的方法(这是Kerbal Space程序中异域控制器支持的附加组件):只需在libraries/下选择.dll,用这些替换旧的.dll,就可以了

我怀疑您能否将SharpDX(渲染框架/游戏引擎)与Unity(渲染框架/游戏引擎)混合使用。为什么还要麻烦呢?Unity内置了对操纵杆/游戏板的支持,如果这还不够的话,你可以在asset store上找到更好的支持。它对其他人有效,而且内置支持缺少很多功能,我已经支持XInput、运行时键绑定,我只想知道如何自己使用它,我不想依赖资产存储资产。