Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(17)

到了本章节,SvrPluginAndroid脚本的全部代码已经介绍完毕。

SvrPluginAndroid集成了SvrPlugin类,是SDK在Android平台上适配的VR模式相关方法和逻辑脚本。

其中比较关键的方法和逻辑如下:

1.BeginVR开始VR模式

public override IEnumerator BeginVr(int cpuPerfLevel, int gpuPerfLevel)
	{
        //yield return new WaitUntil(() => SvrIsRunning() == false);  // Wait for EndVr

        yield return base.BeginVr(cpuPerfLevel, gpuPerfLevel);

        // float[6]: x, y, z, w, u, v
        float[] lowerLeft = { -1f, -1f, 0f, 1f, 0f, 0f };
        float[] upperLeft = { -1f,  1f, 0f, 1f, 0f, 1f };
        float[] upperRight = { 1f,  1f, 0f, 1f, 1f, 1f };
        float[] lowerRight = { 1f, -1f, 0f, 1f, 1f, 0f };
        SvrSetupLayerCoords(0, -1, lowerLeft, lowerRight, upperLeft, upperRight);    // Eye/All
        SvrSetupLayerCoords(1, -1, lowerLeft, lowerRight, upperLeft, upperRight);    // Overlay/All

        SvrSetPerformanceLevelsEventData(cpuPerfLevel, gpuPerfLevel);

        yield return new WaitUntil(() => SvrCanBeginVR() == true);
        IssueEvent (RenderEvent.BeginVr);
        yield return new WaitUntil(() => SvrIsRunning() == true);
    }

2.EndVR 关闭VR模式

 public override void EndVr()
	{
        base.EndVr();

		IssueEvent (RenderEvent.EndVr);
	}

3.SetTrackingMode 设置当前VR模式。

 public override void SetTrackingMode(TrackingMode mode)
    {
        SvrSetTrackingModeEventData((int)mode);
		IssueEvent (RenderEvent.SetTrackingMode);
    }

4.GetPredictedPose获取当前头部朝向和位置数据

public override int GetPredictedPose(ref Quaternion orientation, ref Vector3 position, int frameIndex)
	{
        orientation.z = -orientation.z;
        position.x = -position.x;
        position.y = -position.y;

        int rv = SvrGetPredictedPose(ref orientation.x, ref orientation.y, ref orientation.z, ref orientation.w,
							ref position.x, ref position.y, ref position.z, frameIndex);

		orientation.z = -orientation.z;
        position.x = -position.x;
        position.y = -position.y;

        return rv;
	}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值