下载安装Unity开发工具,要求Unity 5.3.0 或更高版本
 
 
 
 
下载Oculus签名,做Gear VR交互功能模块。关于输入交互,可以下载VR Samples(地址:https://www.assetstore.unity3d.com/cn/#!/content/51519)使用,其原理大家可以看源码,相机输入,射线检测,触摸屏事件,通过Input类完成封装。打开设置,勾选Virtual Reality Supported。(5.2版本及以上)
 
 
 
 
Unity天空盒,从Asset Store下载天空盒资源替换到场景中

 
 
 
Canvas的世界坐标系,将Canvas的Render Mode设置为World Space。但是这样并不利于我们开发阶段的调整。在制作UI时,先在Screen Space -Overlay模式下制作和调整,做完再设置回来。在Canvas下创建一个子节点Window,我们可以通过调整Window来控制整体UI的大小,远近。
 
 
 
安卓导出jar包,在Unity工程中调用安卓jar包
AndroidJavaClass jc=new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject jo=jc.GetStatic<AndroidJavaObject>("currentActivity");
jo.Call("startPlayerActivity", url);

 
 
 
Unity添加贴图,可以添加本地和网络上的图片
Sprite sprite = Sprite.Create(image, new Rect(0, 0, image.width, image.height), new Vector2(0.5f, 0.5f));

 
 
 
Unity动态给物体添加脚本 
obj.AddComponent<AsyncImageDownload> ();
 
 
 
 

Unity 调后台接口,解析返回的json数据(LitJson)
 
public IEnumerator Request()
    {
        string SERVERHTTP = "http://api.utovr.com/videocategory/getvideos?id=" + PlayerPrefs.GetInt("type");
        WWW ret = new WWW(SERVERHTTP);
        yield return ret;
        if (ret.error != null)
        {
            Debug.LogError("error:" + ret.error);
            yield break;
        }

if (string.IsNullOrEmpty(ret.text))
        {
            yield break;
        }
        JsonData jsdArray = JsonMapper.ToObject(ret.text);//转换成json格式;需要引入LitJson
        JsonData jsdList = jsdArray["Data"];
        if (jsdList.IsArray) { 
            for (int i = 0; i < jsdList.Count; i++) {
                JsonData jsd = jsdList [i];      
                VideoInfo vi = new VideoInfo ();
                vi.Name = (string)jsd ["Name"];
                vi.Thumbnail = (string)jsd ["Thumbnail"];
                vi.HlsPath1K = (string)jsd ["HlsPath1K"];
                list.Add (vi);
            }
        }

}

 
 
 
动态调整物体位置和文字大小,动态布局
 
    private void addCube(int index, Vector3 v) {
        VideoInfo vi = list [index];
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = v;
        cube.transform.rotation = new Quaternion(0,0,180, 0);
        cube.transform.localScale = new Vector3(4,3,0.01f);
        cube.name = vi.Name;
        cube.AddComponent<VRInteractiveItem>();
        InteractiveItem eii = cube.AddComponent<InteractiveItem>();
        eii.url = vi.HlsPath1K;
        eii.name = vi.Name;
        eii.Thumbnail = vi.Thumbnail + "|" + vi.SubName + "|" + vi.Description;
        StartCoroutine(Load(cube, vi.Thumbnail));
    }
 
 
 
 
Unity界面滑动效果(UListView)
 
 
 
场景切换
SceneManager.LoadScene("SceneName", LoadSceneMode.Single);
 
 

Gear VR开发的更多相关文章

  1. 使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)

    随着Unity5.1的发布,之前的Oculus Rift和Gear VR 开发流程发生了巨大的变化,这也算是小白鼠们必须付出的代价了~ 那么Unity5.1和Oculus的整合究竟发生了哪些变化,对开 ...

  2. 如何有效提升Unity Gear VR游戏性能

    http://www.vr186.com/vr_news/vr_technical_area/1093.html 好的,所以你决定用 Unity 来做一个 VR 游戏,并选定了三星 Gear vr 为 ...

  3. 三星Gear VR与Oculus Rift DK2全方位比拼

    网易数码1月6日消息,Oculus Rift DK2并不是面向消费者的产品,而三星Gear VR则进入了大众市场.虽然二者有点不同,但还是值得对比一番,看看Gear VR相比当下虚拟现实领域佼佼者Oc ...

  4. 三星首次更新Gear VR虚拟现实浏览器Samsung Internet

    通过VR浏览网页不是问题,不过你需要一个专门的VR浏览器,而GearVR的虚拟现实应用名为"Samsung Internet for Gear VR".继去年12月份上线后,迎来了 ...

  5. VR开发中性能问题—OculusWaitForGPU

    http://blog.csdn.net/cartzhang/article/details/50788894 VR开发中性能问题-OculusWaitForGPU 本文章由cartzhang编写,转 ...

  6. 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件

    欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...

  7. 三星首次更新Gear VR虚拟现实浏览器

    通过VR浏览网页不是问题,不过你需要一个专门的VR浏览器,而GearVR的虚拟现实应用名为"Samsung Internet for Gear VR".继去年12月份上线后,迎来了 ...

  8. 关于VR开发中的穿墙问题随想

    在VR开发中,用户将以第一人称的视角进入虚拟世界,即用户同时身处两个坐标系:1. 现实世界坐标系(如房间的坐标系),用户的身体处于这个坐标系 2. VR世界坐标系,用户的感官处于这个坐标系,即用户觉得 ...

  9. VR开发 VR development

    VR开发 VR development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com Ho ...

随机推荐

  1. VRML开发环境配置

    Vrml真的是个好老的语言啊~~~~ 1. 安装xp虚拟机 vm已经安装过.现在安装xp系统. 发现个网站,msdn itellyou,这里能够下载很多不同的操作系统,都是纯净版的. 选择xp系统:h ...

  2. sass1:

    less在处理CSS动画时,非常恶心,决定转向sass了.sass诞生得比less早,只是因为它是ruby写的,因此受众面够少.但我们不需要自己下编译器或使用命令行,我们可以koala这神器 首先几个 ...

  3. ionic 的下拉刷新 与 上拉加载

    <ion-view view-title="消息通知"> <ion-content class="padding"> <!-- & ...

  4. qml中打开本地html

    main.cpp QString tmploc = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); QDi ...

  5. php翻页

    <?php$conn = mysql_connect("localhost","root","") or die("连接数据 ...

  6. Coding源码学习第一部分(AppDelegate.m)

    前言:在此首先感谢开源,感谢大神们的无私分享. Coding 的主页:https://coding.net/app#app-feature Coding 自己家的仓库:https://coding.n ...

  7. Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档

    array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片 ...

  8. Python3学习(一)-基础、数据类型、变量、字符串和编码、list&tuple、if、for、while、dict、set、函数与参数

    ##廖雪峰py3笔记 ## '//'这是获得相除后的整数部分 ##a = 10//3 ##print (a) ## '/'获得相除后的结果,为浮点数,结果能整除也也是浮点数 ##b = 10/3 ## ...

  9. truncate,delete,drop的异同点

    说明:本文摘自oracle技术用户讨论组 truncate,delete,drop的异同点  注意:这里说的delete是指不带where子句的delete语句    相同点:truncate和不带w ...

  10. 进程间通信--fork函数

    #include <unistd.h> pid_t fork(void); fork() creates a new process by duplicating the calling ...