简体中文 | English

English

A) 3Dof手柄适配(P1/P1 Pro)

1、正常导入DPVRunity插件(请使用0.7.0或以上版本);

2、将菜单栏DPVR->Settings中,Peripheral Support选项设为Flip;

3、将DpnCameraRig.prefab会在运行时自动生成手柄相关的prefab,包含代码和模型。

如何获取手柄信息:

1、如果要获取手柄的姿态和按键信息,可以参考Daydream手柄,在DpnDaydreamController.cs脚本上使用相关属性来获取,属性说明请参考脚本注释。相比Daydream手柄,我们的手柄添加了trigger按键,删除了VolumeUp和VolumeDown两个按键,App键被修改为Back键,Home键保持不变。其中Back键和>Home键有系统默认行为,无需应用特殊处理;

当前系统默认实现如下:

Back:功能同系统返回键;

Home:短按功能同android手机的Home键,长按recenter校准;

2、手柄默认自带射线碰撞系统,如果想要使用大朋默认的碰撞系统,将Dpnmanager.DPVRPointer的值设为true即可。如果无需碰撞或者要自定义的碰撞系统将该值设为false即可。如果需要对UI进行碰撞,请在canvas上加上DpnPointerGraphicRaycaster.cs这个脚本;

3、如果将DPVR->Settings中Peripheral Support选项设为None。则应用默认使用头控不会加载3dof手柄,当然如果此时系统已经和一个手柄配对成功,该手柄仍会发送按键和触摸信息给头盔,以方便用户的操纵。类似的,如果开发者将Dpnmanager.DPVRPointer的值设为true,则会使用大朋默认的头控碰撞系统;

4、如果仅需头控,请参考《如何让使用unity的canvas响应准心》教程,了解头控光标的实现原理。

5、DPVRunity 0.7.3b及以后的手柄支持左右手模式切换,设置接口为Interface name : DpnDaydreamController.interactiveHand { set, get }。其中0代表右手,1代表左手。



B) 触摸板(M2、M2 Pro、P1、P1 Pro)

一体机右侧有一个触摸板,该触摸板响应的是标准TouchPad和Mouse的消息,它只支持单点触摸。

在Unity3D中,可以使用Input.touchCount来判断是否有Touch。然后通过Input.GetTouch(0)获得这个Touch的信息,包括位置、大小等。

此外触摸板还响应了Mouse消息,所以也可以通过Input.GetMouseButton(0)得知是否有Touch,而Input.mousePosition则是当前Touch的位置。


下面的脚本挂在一个Text下面就可以输出这些消息。

using UnityEngine;
using UnityEngine.UI;
using System.Collections;


public class TouchPad : MonoBehaviour
{
    Text txt;

    // Use this for initialization
    void Start()
    {
        txt = GetComponent<Text>();
    }

    // Update is called once per frame
    void Update()
    {
        string msg = "touch: ";

        if(Input.touchCount > 0)
        {
            Touch tch = Input.GetTouch(0);
            msg += tch.position.x + "," + tch.position.y + "," + tch.deltaPosition.x + "," + tch.deltaPosition.y + "," + tch.radius + "\n";
        }
        else
        {
            msg += "none\n";
        }

        Vector3 mouse_position = Input.mousePosition;
        bool btn0 = Input.GetMouseButton(0);

        msg += btn0.ToString() + " " + mouse_position.x + "," + mouse_position.y + "," + mouse_position.z + "\n";

        txt.text = msg;
    }
}

Copyright © dpvr.cn, All Rights Reserved 沪ICP备15019466号-2 (Shanghai) Shanghai Lexiang Technology Co., Ltd