Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(6)

原创 2018年03月22日 14:29:34

前几篇文章中已经系统介绍了SvrPluginAndroid脚本中调用的dll底层方法。

细心的读者可以观察到所有的方法中都是private 的私有方法。

于是在SvrPluginAndroid中在此基础上封装了一层公共方法供外部的脚本调用。

在介绍这些公有方法之前,首先跟大家介绍一下SvrPluginAndroid中的Create方法:

	public static SvrPluginAndroid Create()
	{
		if(Application.isEditor)
		{
			Debug.LogError("SvrPlugin not supported in unity editor!");
			throw new InvalidOperationException();
		}

		return new SvrPluginAndroid ();
	}

这个方法的作用是返回SvrPluginAndroid的实例。

在这个方法后面,定义了一个私有的构造方法。

	private SvrPluginAndroid() {}

私有的构造方法的作用是防止外部创建自由的创建多个SvrPluginAndroid的实例。

    public override bool IsInitialized() { return SvrIsInitialized(); }

    public override bool IsRunning() { return SvrIsRunning(); }

方法IsInitialized的作用是供外部调用获取当前SDK是否完成初始化。

方法IsRunning的作用是供外部调用获取当前SDK是否在处于运行的状态中。

 public override IEnumerator Initialize()
	{
        //yield return new WaitUntil(() => SvrIsInitialized() == false);  // Wait for shutdown

        yield return base.Initialize();

#if UNITY_ANDROID && !UNITY_EDITOR
		AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
		AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");

		SvrInitializeEventData(activity.GetRawObject());
#endif
        IssueEvent(RenderEvent.Initialize);
		yield return new WaitUntil (() => SvrIsInitialized () == true);

        yield return null;  // delay one frame - fix for re-init w multi-threaded rendering

        deviceInfo = GetDeviceInfo();
		
    }

Initialize为当前SvrSDK的初始化方法,首先判断了当前设备的运行环境,如果是andorid平台,获取当前的AndroidJavaObject实例,使用RenderEvent.Initialize事件类型并完成初始化的动作。

等待初始化完成后,为deviceInfo变量赋值,读取当前设备信息。




Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(6)

前几篇文章中已经系统介绍了SvrPluginAndroid脚本中调用的dll底层方法。细心的读者可以观察到所有的方法中都是private 的私有方法。 于是在SvrPluginAndroid中在此基础...
  • CONGLF
  • CONGLF
  • 2018-03-22 14:29:34
  • 323

Android平台上集成大华SDK

在项目中需要接入大华设备,因此我们集成了大华Android版本SDK。与海康SDK类似,它也是分为NetSDK和PlaySDK。 前者用于设备连接、网络通信;后者用于解码、播放。 在APP中,关于大华...
  • zdj_Develop
  • zdj_Develop
  • 2017-03-07 09:43:24
  • 3894

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(14)

public override void Shutdown() { IssueEvent (RenderEvent.Shutdown); base.Shutdow...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:19:46
  • 95

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(9)

public override void SetFoveationParameters(float focalPointX, float focalPointY, float foveationGai...
  • CONGLF
  • CONGLF
  • 2018-04-12 14:48:16
  • 101

<em>SVR</em>算法C++实现

UDP Socket编程 C/C++实现 (Windows Platform <em>SDK</em>) 书籍下载链接 微软MSDN官方...*详细原因: 取  消 提  交 <em>SVR</em>算法C++实现 3 积分 立即下载 ...
  • 2018年04月08日 00:00

腾讯云视频直播sdk开发攻略

视频直播这一两年在移动互联网上可以说是非常的火,各种视频直播软件层出不穷。有的通过自己的推广宣传确实火了起来,比如:映客。 我之前也是在一家专门做视频直播的公司打酱油,当时对这个概念还是很模糊,后来才...
  • shaoyezhangliwei
  • shaoyezhangliwei
  • 2016-10-24 12:44:21
  • 9896

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(12)

本文将介绍SvrPluginAndroid脚本中的Submit方法,该方法的作用是渲染左右眼图像,是SvrPlugin中VR模式实现的核心代码。 public override void Sub...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:08:57
  • 100

Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(15)

在SvrPluginAndroid中还提供了一些手柄的操作方法。Qcom VRSDK中手柄兼容的是Ximmerse手柄,方便开发这快速的连接手柄开发相关程序。具体的代码如下: //----------...
  • CONGLF
  • CONGLF
  • 2018-04-12 15:23:08
  • 84

PlatformSDK也来添乱

 最近几天真是麻烦不断,装了最新的PlatformSDK for Windows 2003 R2 (5.2.3790.2075.51.PlatformSDK_Svr2003R2_rtm.img)并与我...
  • complayer
  • complayer
  • 2007-01-08 11:02:00
  • 1911

视频监控安防平台-GB28181SDK(2016版) 和windows demo-提供c++库和windows测试demo

视频监控安防平台-GB28181SDK(2016版) 和windows demo-提供c++库和windows测试demo  之前上传了linux版本的28181SDK demo...
  • songxiao1988918
  • songxiao1988918
  • 2018-01-24 10:41:45
  • 592
收藏助手
不良信息举报
您举报文章:Qualcomm_Snapdragon_VR_SDK SvrPluginAndroid脚本简介(6)
举报原因:
原因补充:

(最多只允许输入30个字)