🟥 目前SDK适配的设备
SDK中集成了几种类型的游戏控制器,如:
- 3Dof手柄:K02、K07手柄
- 6Dof手柄:K102、K11手柄
以下图片,依次为上述四种设备。
那我们应该如何让影创SDK,来适配我们的项目呢?
那么下面,我们先来讲第一个:如何让SDK支持不同的游戏控制器(即手柄)
🟧 不同游戏控制器型号的开关
Assets 中搜索:SDKConfiguration
如下四项,便是不同型号设备控制器的开关(1表示开,0表示关)
- ActiveBT3Dof:K02、K07手柄
- ActiveKS:打开它,其他K系列手柄才会起作用,不然即使其他K手柄设为1,也不会起作用
- KSModeSet3Dof:内测的一款K101手柄
- UseK102Model:K102手柄
有小老弟问了:橙哥,全部打开会不会冲突报错啊?
Answer:不会的,默认全部打开,这样连上来了任意手柄,都能使用。
那橙哥,SDK输入方式有优先级么?
Answer:游戏控制器 > 手势 > 头显
即:连上手柄,头显和手势交互会被关闭;连上手势,头显会关掉。
它们是互斥存在的。
🟨 如何在Unity中模拟你的手柄,进行交互
接下来我们学习下,如何在unity中,显示出你的手柄模型,
并进行一个交互。
1️⃣ 项目基础配置
完成如下基础的操作:
- 删除Main Camera
- 添加SDKSystem
再创建一个Cube,作为我们接下来交互地测试对象:
2️⃣ 使用K11手柄进行模拟
在Unity中,默认是手势交互的,场景中会显示一只手。
下面,我们用K11手柄举例,来在Unity中进行测试。
1、打开手柄模拟开关
激活 InputDeviceKS 物体 《InputDeviceKS》脚本的 SimulateInEditor 属性。
注意:在游戏未运行状态下激活,在运行时激活无效。
2、设置使用K11手柄
其实在SDK中,并没有暴露给开发者设置模拟手柄的接口,
橙子查阅代码发现,我们可以通过更改代码的形式,去使用其他手柄。
找到 GSXRPluginWin 脚本,我们看到:
public override int GSXR_Get_ControllerList(int lr) { return (int)KSID.K102; }
SDK默认赋值K102手柄,我们只需要在这改成对应的手柄就好了:
public override int GSXR_Get_ControllerList(int lr) { return (int)KSID.K11; }
🟩 代码适配
上面我们完成了在编辑器中适配我们的设备,
想让SDK完全适配我们的设备,那还需要代码去适配。
因为不同的手柄设备,按键不一样,功能不一样,那么在编写代码时,主意调用正确的API就好了
SDK API部分,我们可以去官网进行完整的查看。(传送门)
好啦,通过上述操作,我们便完成了SDK适配我们的设备的操作