下载安装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. div跟随页面滚动

    $(document).ready(function(){ var timer; $(window).scroll(function (){ clearInterval(timer); var top ...

  2. sessionStorage & localStorage & cookie

    sessionStorage & localStorage & cookie 概念 html5中的Web Storage包括了两种存储方式:sessionStorage和localSt ...

  3. golang使用 mongo

    连接集群 mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?op ...

  4. MySQL 5.6查询优化器新特性的“BUG” eq_range_index_dive_limit

    本文转自 http://www.imysql.cn 最近碰到一个慢SQL问题,解决过程有点小曲折,和大家分享下. SQL本身不复杂,表结构.索引也比较简单,不过个别字段存在于多个索引中. CREATE ...

  5. 16101301(MaterialLOD QualitySwitch)

    [目标] MaterialLOD QualitySwitch [思路] 1 QualitySwitch UE4有三挡 UE3 2 现在UE3需要添加三挡 3 UE3 class UMaterialEx ...

  6. tomcat重启脚本

    #!/bin/bashPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binexport JAVA_HOME=/opt/jd ...

  7. 显示图片的(自定义)吐司Toast

    一般我们提示的时候都是直接提示文字的,其实Toast也可以显示图片 常用方法 Toast.makeText(context,text,duration)这返回一个Toast对象 toast.setDu ...

  8. lnmp 设置ci pathinfo和去掉index.php

    LNMP上各个版本pathinfo各个版本的设置基本一样: lnmp v1.1上,修改对应虚拟主机的配置文件去掉#include pathinfo.conf前面的#,把try_files $uri = ...

  9. 二、Python 数据类型

    计算机是用来辅助人类工作的,能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定义不同的数据类型,在程序设计中映射了现实世界的分类,以便于抽象的分析 序列:不 ...

  10. HDU 2669

    题目大意: 已知线性方程ax+by=1; 输入a, b的值, 要求输出整数解x, y的值(输出x, y的最小整数解), 若没有解, 输出"sorry".   分析: 求线性方程的解 ...