欢迎来到爱奇艺奇遇VR开发者支持!
Welcome to the QIYUVR DEV!
爱奇艺奇遇VR整合 VIVE WAVE 平台 爱奇艺的一体机(包括最新的奇遇2 PRO)均可使用 VIVE WAVE SDK 开发内容, 并通过 VIVEPORT VR应用商店分发内容。
VIVE WAVE 是一个开放式的VR开发平台,兼备完善的开发工具,VIVE WAVE VR SDK 支持主流游戏引擎,跨平台适配众多移动端VR设备与配件,一次编译就可以让使用不同VR硬件的玩家体验到开发者的得意作品。了解更多请访问:https://developer.vive.com/cn/wave/
VIVEPORT 是一个全球性的VR订阅服务和VR应用商店平台,用户可以通过Viveport体验2000+款VR应用和游戏,了解更多关于Viveport的信息,请访问:https://www.viveport.com/
爱奇艺奇遇VR(奇遇2、奇遇2S、奇遇2Pro)支持VIVE WAVE SDK。请使用以下链接进行下载Unity或Unreal版本。SDK下载
SDK说明文档请参阅以下链接内容,如果设备兼容问题请在Issues栏提问,我们将协助您解决问题。查阅文档
版本:0327 2020.3.27 SDK下载
1.模块介绍与工程配置
2.API接口
3.手柄手势模型简介
4.手柄资源规范
1.1 主入口模块
1.2 系统弹窗转3D显示模块
1.3 VR键盘模块
1.4 工程配置
2.1 camera相关属性和方法
QVRCameraMain.cs:
Head
//获取头部transform
LeftEyeCamera
//左camera
RightEyeCamera
//右camera
Initialized
//已初始化
IsRunning
//运行中
RecenterTracking
//重置LockCamera
//锁屏
IsLockCamera
//是否已锁屏
EnableLog
//开关log
调用方式示例:QVRCameraMain.Instance.Head;
SvrManager.cs:
Settings
包括trackPosition(是否追踪位置),headHeight(head高度),headDepth(head深度),eyeAntiAliasing(抗锯齿),cpuPerfLevel,gpuPerfLevel等。
调用方式示例:SvrManager.Instance.settings.trackPosition = false;
可参考Assets/Sample/Scenes/SampleScene
2.2 手柄按键和数据的接口
cQVRInput
bool Get(Button buttonMask, Controller controllerMask = Controller.Default)
获取按钮事件(不松手一直触发),默认是带射线的主手柄(以下相同)
float GetPressTime(Button buttonMask, Controller controllerMask = Controller.Default)
获取按压时间
bool GetDown(Button buttonMask, Controller controllerMask = Controller.Default)
获取按钮按下事件
bool GetUp(Button buttonMask, Controller controllerMask = Controller.Default)
获取按钮抬起事件
float Get(Axis1D axis, Controller controllerMask = Controller.Default)
获取一维数据(Trigger力度)
Vector2 Get(Axis2D axis, Controller controllerMask = Controller.Default)
获取二维数据(触摸板坐标)
bool GetTouch(Axis2D axis, Controller controllerMask = Controller.Default)
获取按键触摸状态
Vector3 GetLocalPosition(Controller controllerMask = Controller.Default)
控制器位置
Quaternion GetLocalRotation(Controller controllerMask = Controller.Default)
控制器旋转
Vector3 GetPositionVelocity(Controller controllerMask = Controller.Default)
控制器线速度
Vector3 GetPositionAcc(Controller controllerMask = Controller.Default)
控制器线加速度
Vector3 GetOrientationVelocity(Controller controllerMask = Controller.Default)
控制器角速度
Vector3 GetOrientationAcc(Controller controllerMask = Controller.Default)
控制器角加速度
int GetBatteryPercentRemaining(Controller controllerMask = Controller.Default)
获取电量
bool IsConnected(Controller controllerMask = Controller.Default)
控制器是否连接
string GetVersion(Controller controllerMask = Controller.Default)
获取版本号
SwipeType GetSwipe(Controller controllerMask = Controller.Default)
获取滑动手势
void StartVibration(float amplitude, float duration, Controller controllerMask = Controller.Default)
震动手柄(强度,时长,手柄编号)
Handedness GetDominentHand()
获取主手柄
void SetDominentHand(Handedness val)
设置主手柄
QVRInput.IsConnected(QVRInput.Controller.LTouch)
QVRControllerInstanceManager.cs:
ControllerInstanceType CurrCtrllerInstanceType
获取和设置手柄显示还是手势显示
Qiyi.Event.Controller:
包括CONNECTION_CHANGE等事件通知。
Event.AddListener(Event.Controller.CONNECTION_CHANGE, OnConnectionChange);
可参考Assets/Sample/Scenes/SampleScene
2.3 系统服务模块接口
QvrSdkService.cs:
string GetSn()
//获取设备SN
string GetSystemVersion()
//获取设备系统版本
string GetModel()
//获取设备型号
string GetMacAddress()
//获取Mac地址
void SetVolume(int volume)
//设置音量,取值(0~15)
int GetVolume()
//获取音量值(0~15)
string GetProperty(string key, string defaultValue)
//获取属性
void SetProperty(string key, string value)
//设置属性
void SetBrightness(int brightness)
//设置亮度,取值(0~255)
int GetBrigthness()
//获取亮度值(0~255)
void SetColorTemperature(int colorTemperature)
//设置色温,取值(0~255)
int GetColorTemperature()
//获取色温(0~255)
StorageInfo GetSdInfo()
//获取存储容量信息
void OpenWifi()
//打开wifi
void CloseWifi()
//关闭wifi
bool IsWifiEnabled()
//wifi是否打开
void Reboot()
//重启
void Shutdown()
//关机
void KeepScreenOn()
//亮屏
void KeepScreenOff()
//灭屏
void StartApp(string packageName, string data = null)
//开启应用(应用包名, 传递参数)
void GetAppList(Action<List<LauncherInfo>> action)
//获取应用列表
bool Is24Format()
//是否是24小时制
void RegisterBattery(Action<ProtocolBatteryState> action)
//注册电量广播
void UnregisterBattery()
//取消电量广播
void RegisterWifi(Action<ProtocolWifiState> action)
//注册wifi广播
void UnregisterWifi()
//取消wifi广播
void RegisterAppInstall(Action<AppInstallState> action)
//注册全局安装/卸载/覆盖安装广播
void UnregisterAppInstall()
//取消全局安装/卸载/覆盖安装广播
void InstallApp(string apkPath, Action<AppInstallState> action = null)
//安装应用
void UninstallApp(string packageName, Action<AppInstallState> action = null)
//卸载应用
void ClearMemory(Action<ProtocolMemory> action)
//清理缓存
可参考Assets/Sample/Scenes/SDKServiceDemo
2.4 VR键盘模块接口
void SetInputField (IVrInputField inputField)
//设置键盘所关联的输入框,以将输入内容显示在输入框中
bool IsActive ()
//键盘是否在场景中显示
void SetActive (bool active)
//调出或隐藏键盘
bool IsDone ()
//输入是否完成
bool WasCanceled ()
//输入是否被取消
void FinishInput (FinishAction action)
//结束输入并隐藏键盘
void ProcessKeyDown (KeyCode code, char c, EventModifiers modifiers)
处理键盘按键输入的内容(按键的KeyCode, 按键的字符, 按键的修饰按键)
bool IsCapsLock ()
//是否处于大写锁定状态
void ClearInput ()
//清除输入的内容
SupportedInputMethod GetCurrentInputMethod ()
//获取当前的输入法
void InputSequence (string input)
//输入一个字符串
OnEndInputEvent OnEndInput;
//点击“完成”按钮时回调
nityEvent OnShow;
//当键盘ui从隐藏到被显示的时候回调
UnityEvent OnHide;
//键盘被隐藏时回调
3.手柄手势模型简介