会用unity开发java简单工厂模式实例的vr吗

利用Unity让工作更有效率的十大办法 VR开发心得
你是不是曾经很多次因为要重复性的做一件事而感觉无聊或者失望,或许经常回这样&但是你不用再担心了!
比尔盖茨曾说过:&我选择做一个高难度工作的懒汉。因为一个懒人会选择用最简单的方式去工作。&
同时你可能会问为什么我要举这样一个例子?因为我要给你介绍一种懒人方法。
那么开始吧
我们想出这个方法的主要原因事实上是希望通过设计让我们变成了&懒汉&,我们不用再每个任务中重复同样的工作。所以,我们想到用工具和诀窍来让我们的生活变得更轻松,我们也同时希望它可以帮助到你!
下面是在Unity里面排在前十位最有效的方法:
第一, 改变你编辑的模型颜色
你是否常常在某一个点上反复调整你的游戏设计?又或者你发现你仅仅是按了暂停键然后所有你之前做的工作都没有了?当然这在unity经常发生。但是你一定不会忘记这样的情况,而且它不会只发生一次。
其实最简单有效的提醒自己的方法就是在play mode下去改变editor的play mode颜色。它在Unity菜单下的Preferences的colors里,然后在playmode tint color里把它的颜色调一个最亮的颜色就可以了。
第二 让代码自己写
有很多工具可以拓展你的IDE,其中还有一些小技巧来辅助你。其中一个拓展工具就是JetBrains Resharper,这个软件十分实用,你在做任何编程的时候都可以用到。
这个工具会分解你的代码,然后再编写代码。它还可以帮你找出bug。它甚至可以帮你修正你的bug.虽然不一定所有都行得通,但是常规的bug还是没问题的。
如果你是个程序猿,这个工具一定会帮到你。
举几个例子
& Converting code to Linq:
& Converting code from Linq:
& Adding missing usings:
& Generating methods:
可以到官网下载
第三 优化你的创建通道
当你在生成一个新的app或者游戏时,你可能需要创建很多次builds来测试。每一个build会生成好几分钟,甚至是好几个小时。这其实是在影响你的工作效率。
所以为了能让这个生成过程节省很多时间,我们会建议你的项目最好是适中大小的文件,那么它一般在环境下会生成20分钟左右,而在ios环境下是一个小时左右。这样的话,你在每天生成一个build时间就可以降低到最低。那么,我们计算下时间,它一个月(大概是20个工作日除掉周六日)会花费掉你的时间是:Android环境下至少6个小时40分钟,ios是至少40小时。那么这样算下来你的时间比造一个第一架登陆月球的航天飞行器(luna1 制造于1959年) 时间还要多!它用了36小时!好吧,那如何来节省这些时间呢?用外部的辅助工具可以帮你来生成build.
之前曾经一度流行Jenkins这个外部插件。它有很多灵活的功能。同时,它可以给你最基本的无限制的方法来设置你的创建通道,举例:
一 新任务中可查看资源库
二 解析代码
三 创建build
四 完成后,可发送build文件到FTP服务器上
五 发送build报告及相关文件链接邮件
工具栏还有很多其他的选项,而且如果你需要更多功能,你可以自己再加进去。而且它全部是免费的!所以你只需要登陆它的官网下载安装就可以了。
另外一个工具是unity自带的工具叫Unity Cloud Builds。它的集成稳定行更高一些,在它的编辑栏中你基本上可以设置任何你需要的功能。像jenkins,它同样也是免费的,不过unity订阅你的builds可以更好地优化同时运行速度也会更快。
另外,unity会关联到你的build用来下载你的文件或者分享给其他人。
More about Unity Cloud Builds:&
那么这两个软件有什么不同呢?第一个是开源的而且有一个非常大的plugins资源库可以用来安装,例如,你可以把slack整合进3rd party APIs 里,或者用任何方式来配置你的工具栏,并且提供设置你自己build通道的可能。而unity cloud则仅仅可以在unity框架内使用,你也没法加载其他东西在里面。当然,你也可以设置slack中的桌面提醒,来提醒unity cloud或者 webhooks的信息,但是仅此而已。而它的优势则在于直截了当,而且非常容易设置以及操作。
那么哪一个是你最想要使用的呢?如果你仅仅是需要一些简单的要求,那么直接下载unity cloud builds就可以了,如果你还需要在配置选项中,增加更高级的命令那么就选择jenkins.
第四,用方便的方式存储你的数据
很多人会把数据放在scene或者hardcore的对象里。这种方法常常会让你很难发现在生成一个想要得到的结果时,你哪里仍然需要调整。
但是现在有两种非常好的方法帮你来存储数据:
1 test asset, 它可以是json, excel 文件或者是任何形式的文字形式。主要问题点是在这样的文件中你只需要输入字体,然后创建一个解析器来帮你阅读这个文件,并且得到你的数据。
2 创建scriptableobject. 这个方法更加有效和方便。你可以把他们放在任何你想要的地方,例如像Text, numbers, textures, material, models等等。 而且最重要的是你可以像其他asset一样用它,并且像得到一个变量一样容易的去读取数据。
以下是一个关于ScriptableObject代码的案例:
using UnityE
[CreateAssetMenu(fileName = &NewWeapon&, menuName = &Weapon&)]
public class WeaponData : ScriptableObject
&&&public string displayN
&&&public float
&&&public float reloadT
通过这些代码你可以像很多 WeaponData 对象一样很容易创建你想要的代码
第五 自动关联
创建UI通常是最令人烦恼的事,因为大多数情况下你有很多脚本,他们需要更多你自己必须要手动的参考对象。如果所有的这些参考对象文件能自己加载那该有多好。
那么下面有一种方法可以做到:
using System.L
using UnityE
public class AutoReferencer&T& : MonoBehaviour where T : AutoReferencer&T& {
&&&#if UNITY_EDITOR
&&&protected new virtual void Reset()
&&&&&&&foreach (var field in typeof(T).GetFields().Where(field =& field.GetValue(this) == null))
&&&&&&&&&&&
&&&&&&&&&&&T
&&&&&&&&&&&if (transform.name == field.Name)
&&&&&&&&&&&{
&&&&&&&&&&&&&&&obj =
&&&&&&&&&&&}
&&&&&&&&&&&else
&&&&&&&&&&&{
&&&&&&&&&&&&&&&obj = transform.Find(field.Name);
&&&&&&&&&&&}
&&&&&&&&&&&
&&&&&&&&&&&if (obj!=null)
&&&&&&&&&&&{
&&&&&&&&&&&&&&&field.SetValue(this, obj.GetComponent(field.FieldType));
&&&&&&&&&&&}
所有的都可以被自动加载!
以上五种方法希望可以帮助你从繁碎的生成unity对象的过程中解脱出来,并且提高工作效率。 我会在接下来的一个章节中添加其他的方法,所以尽情关注之后的更新。你可以订阅我们的newsletter.
<font color=#-21<font color=#-20<font color=#-20<font color=#-20<font color=#-20<font color=#-20<font color=#-20<font color=#-19<font color=#-14<font color=#-14
早在去年7月份,为了让 VR/AR 应用开发人员更轻松地创建和更直观地看到 3D 虚拟对象,...
想知道在Unity中如何将游戏中角色对话的唇型与面部微表情达到次时代的水准吗?想知道...
近日,RLTY CHK工作室的联合创始人Nick Robinson发布了一篇文章,以媒体天师麦克卢汉...
VR设计师和开发者们开始着手如何让VR环境及体验更加有趣、逼真。以下是一些关于如何为room...
笔者在为《幻想装置》和《工作模拟》制作出混合现实的预告片以后,研究了更深层次的VR...今天起你就可以使用Unity在VR头显中开发游戏
今天起你就可以使用Unity在VR头显中开发游戏
【专稿,转载请注明出处】
在之前的数月里,我们曾经多次地看到过 Unity 的
内创作工具,在上个月举办的洛杉矶Unite大会上,Unity 首席工程师 Labs Amir Ebrahimi就展示了他使用Vive和Oculus设备在Santo Campo 工作室开发的游戏《看火人(Firewatch) 》中设计标志性的瞭望塔的过程。
在Vision VR/AR亚洲峰会上,Unity方面已经证实这款开发工具的测试版Experimental Build今日正式(12月15日)上线,该款编辑器的亮点在于,大家可以通过HTC Vive和Oculus Rift头显进行开发游戏,该版本还提供一个升级版的360度播放器,支持4K视频,游戏开发者可以通过GitHub免费下载这一套新的编辑器,让整个开发过程变得有“沉浸感”起来。
从操作的图中我们可以看到,当开发者按下“Unity 按钮”,一份菜单弹了出来并悬在了控制器上方。通过项目视图可以把想在游戏中展示的物体创造出来,并且轻易的加到游戏中去,实现快速编辑的同时又有很强的互动性。
有新产品或者项目希望我们报道,猛戳这里
17173发布此文仅为传递信息,不代表17173认同其观点或证实其描述。
热门VR文章
热门VR游戏榜
类型:惊悚刺激
类型:角色扮演
类型:角色扮演
类型:即时战略
类型:角色扮演
关注17173VR公众号
第一时间获取最新VR游戏资讯。各种奖品福利等你领取哦!游戏蛮牛学习群(纯技术交流,不闲聊):
扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 2345|回复: 3
UNITY开发VR眼镜中文入门教程(7)
本帖为抢楼帖,欢迎抢楼!&
9排名<font color="#FF昨日变化30主题帖子积分
在线时间54 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
优化Unity中的VR
为确保用户有极棒,无恶心的虚拟现实体验,而达到推荐帧率,优化是很关键的一个部分.因为现在VR硬件刚刚起步,所以要尽可能多的在硬件设备上进行测试.VR相对于非VR项目的主要不同点就是它要为每只眼睛渲染一次图像,当你了解这一点,创建项目时围绕它进行相关优化将节省大量的开发时间.手机上的配置远比不上桌面级电脑硬件,所以在移动设备上的VR做优化是至关重要的.当然不要忘记要尽可能的优化程序代码,查看有关代码优化更详细的指导:”docs..com/Manual/MobileOptimizationPracticalScriptingOptimizations.html”.OCULUS 资源
在Oculus网站上有大量的资源文档,非常值得你去看:https://developer.oculus.com/documentation/http://static.oculus.com/sdk-downloads/documents/Oculus_Best_Practices_Guide.pdfhttps://developer.oculus.com/blog/squeezing-performance-out-of-your-unity-gear-vr-game/https://developer.oculus.com/blog/squeezing-performance-out-of-your-unity-gear-vr-game-continued/UNITY 编辑器优化工具
在Unity中有一些很有用的工具和技术,有助于您优化VR游戏内容.Profiler
Profiler可以帮你了解每一帧渲染的时间,并且将其拆分为CPU,渲染,内存,音频,物理和网格.通过使用Profiler检查性能消耗从而针对性的优化.更多关于Profiler的使用请参阅这些链接:http://docs.unity3d.com/Manual/Profiler.htmlhttps://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/profiler-overviewhttps://unity3d.com/learn/tutorials/modules/intermediate/editor/intro-to-profilerFrame 调试器
Frame调试器步进式的查看每帧Draw Call,看每帧是如何构造出眼前的场景的,确定哪些可以优化,哪些是不需要的东西,这将大大有助于减少Draw Call.更多Frame 调试器的信息请参阅下列链接:http://docs.unity3d.com/Manual/FrameDebugger.htmlhttps://unity3d.com/learn/tutorials/modules/intermediate/graphics/frame-debuggerVR优化原理
虽然优化是个巨大的门类,每个平台,每个需求都会有不同的优化方法.现有的优化技术可以很好的用于VR项目开发优化Geometry移除VR中任何看不到的三角形,比如如果用户看不到后背,纳闷我们完全可以把角色模型后背的三角面和贴图删除优化掉.另外根据目标平台,试着添加一些细节纹理,比如视差贴图等,虽然这会影响到性能,但是也许它非常适合在特定的目标平台.OverdrawOverdraw视图让你可以了解什么对象被绘制在了另一个对象上面,这种无谓的渲染会浪费GPU渲染时间,通过场景视图中(docs.unity3d.com/Manual/ViewModes.html)开启Overdraw模式查看场景中的覆盖情况.
1_overdraw-menu.png (30.88 KB, 下载次数: 5)
11:19 上传
普通视图模式:
2_normal-shaded.png (148.7 KB, 下载次数: 5)
11:19 上传
Overdraw 模式:
3_overdraw.png (228.72 KB, 下载次数: 2)
11:19 上传
Level of DetailLevel Of Detail (LOD) 可以让你根据模型物体与相机的距离动态的切换物体三角形面数,只要你的模型距离相机有一定距离,LOD会显示一个低面数的模型来减少对硬件的负载,提升渲染性能.
4_lod0.png (90.45 KB, 下载次数: 8)
11:19 上传
用Simplygon() 插件可以自动化处理模型的LOD.Draw Call batching尽可能的将Batch Draw Call,使用Static Batching 和 Dynamic Batching会大大提高性能.详见Unity手册Draw Call Batching(docs.unity3d.com/Manual/DrawCallBatching.html).Lightmapping减少动态光照使用,增加烘焙照明,避免实时光影,详见avoid realtime shadows()和&&Lighting and Rendering(unity3d.com/es/learn/tutorials/modules/beginner/graphics/lighting-and-rendering) .Light ProbesLight probes (docs.unity3d.com/Manual/LightProbes.html) 可以让烘焙光照的场景中动态对象的动态光照实现出来,这个运算很快,但是经常会有很大视觉效果提升.Reflection ProbesReflection probes (docs.unity3d.com/Manual/class-ReflectionProbe.html) 会根据场景位置将环境贴图存储于Cubemaps中,来增加环境反射贴图的真实性,但是实时反射在VR中会很慢.Occlusion CullingOcclusion Culling (docs.unity3d.com/Manual/OcclusionCulling.html)能禁止对看不到的场景渲染,例如一扇门关闭时,我们不想让门那边的另外房间渲染,就可以使用它.使用它可以显著提升性能.没有进行遮挡裁切的示例:
6_occlusionfrustumculling.png (370.45 KB, 下载次数: 5)
11:20 上传
使用了遮挡裁切的示例:
7_occlusionfullculling.png (319 KB, 下载次数: 5)
11:20 上传
Anti-AliasingAnti-Aliasing 抗锯齿在VR中是很有用的,因为它有助于平滑图像,减少锯齿状边缘.如果你是用了 Forward Rendering, 你可以在画质设置中起启用MSAA(docs.unity3d.com/Manual/class-QualitySettings.html),你也应该在Gear VR中启用它来提升效果.在Deferred Rendering时,你可以用图像脚本(docs.unity3d.com/420/Documentation/Components/script-AntialiasingAsPostEffect.html)或看论坛上启用SMAA的例子:””.Textures一般情况下,可以用&&Texture Atlasing (https://en.wikipedia.org/wiki/Texture_atlas)把场景中的贴图整合起来以尽可能的减少材质球数量.我们也可以用MeshBaker (https://www.assetstore.unity3d.com/en/#!/content/5017)简化加快这一优化过程.Meshbaker可以用来烘焙纹理,网格,材质来优化游戏性能.详见下面链接:用MeshBaker的视频教程(https://www.youtube.com/watch?v=9vZ8SfXOlpI)Oculus渲染文档:(https://developer.oculus.com/documentation/intro-vr/latest/concepts/bp_app_rendering/)Shaders尽量使用Basic着色器,在Gear VR中,推荐使用”Mobile & Unlit (Supports Lightmap) shader”.Fullscreen EffectsFullscreen effects(docs.unity3d.com/Manual/comp-ImageEffects.html)是非常消耗资源的,在GearVR上要尽可能避免使用.Quality SettingsQuality Settings(docs.unity3d.com/Manual/class-QualitySettings.html)决定项目中画质的各个方面,改变这些属性可以提高游戏性能,但是会牺牲视觉效果.RenderScaleVRSettings.renderScale(docs.unity3d.com/ScriptReference/VR.VRSettings-renderScale.html)渲染比将改变图像锐度,可以用来提高画质或者降低画质提升帧率.Asynchronous Loading如果把游戏拆分成若干个单独的场景,在加载时,为了避免画面冻结导致恶心不适感,建议使用异步加载来载入下一个场景数据:SceneManager.LoadSceneAsync(docs.unity3d.com/ScriptReference/SceneManagement.SceneManager.LoadSceneAsync.html)VR示例中的优化技术
我们在示例项目中做了一些列优化确保示例项目在GearVR和DK2上都能有很好的性能.我们选用了一种低面艺术风格,并只使用了几个基本颜色,使得项目能很流畅有很美丽.我们使用了Forward Rendering,并在Edit & Project Settings & Quality Settings 启用了4x MSAA.
8_msaa-qualitysettings.png (68.17 KB, 下载次数: 6)
11:20 上传
让我们快速的看一下场景中用到的优化技术:Menu 场景优化场景中我们使用低模资源,没有用实时光照,给菜单面板用了名为SeparableAlpha的自定义着色器,它允许单独设置透明通道,避免每一帧都用这个菜单自己的透明通道,减少了贴图文件大小.Flyer场景优化我们使用了雾效确保小行星等物体很融合的进入到场景,并缩短了视距,减少了渲染物体数量.小行星用了很少的面,所以它可以用 Dynamic Batching,同样也创建了一个对象池(unity3d.com/es/learn/tutorials/modules/beginner/live-training-archive/object-pooling)处理激光,小行星物体和圆环,减少较耗费资源的实例化(docs.unity3d.com/ScriptReference/Object.Instantiate.html)的使用.在飞船上用了一个很小的颜色纹理用第二UV通道给Detail Map.这会节省贴图尺寸.Maze 场景优化迷宫场景使用了烘焙光照贴图,特别是在移动设备上运行它会有很流畅的效果,否则它将是一个很简单的没有实时光照没有什么效果的场景.Shooter180和Shooter360场景优化和其它游戏一样,我们用了低模风格以及对象池(unity3d.com/es/learn/tutorials/modules/beginner/live-training-archive/object-pooling),同时对低顶点数的模型使用Dynamic Batching(docs.unity3d.com/Manual/DrawCallBatching.html).更多优化细节可以到Oculus网站查看:https://developer.oculus.com/documentation/http://static.oculus.com/sdk-downloads/documents/Oculus_Best_Practices_Guide.pdfhttps://developer.oculus.com/blog/squeezing-performance-out-of-your-unity-gear-vr-game/https://developer.oculus.com/blog/squeezing-performance-out-of-your-unity-gear-vr-game-continued/
原文:http://unity3d.com/learn/tutorials/topics/virtual-reality由 四角钱 (XK) 翻译,转载请注明来自
用unity开发unity3d适合虚拟现实吗;虚拟现实眼镜的原理;虚拟现实眼镜虚拟现实眼睛的手机;虚拟现实用谁的cpu好;虚拟现实技术与应用虚拟现实和激光技术;unity vr开发;虚拟现实眼镜原理;虚拟现实的眼镜原理;gearvr虚拟现实眼镜;虚拟现实眼睛手机;虚拟现实虚拟现实技术虚拟现实与激光技术
本帖被以下淘专辑推荐:
& |主题: 17, 订阅: 4
每日推荐:
113/50排名<font color="#FF昨日变化97主题帖子积分
注册看看, 积分 13, 距离下一级还需 37 积分
注册看看, 积分 13, 距离下一级还需 37 积分
在线时间7 小时
这么牛叉的文章,得给支持啊
每日推荐:
5951/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 951, 距离下一级还需 49 积分
熟悉之中, 积分 951, 距离下一级还需 49 积分
在线时间364 小时
好贴啊&&这么多的分享整理不容易
[]: szlizyi 发帖时在路边捡到 2
蛮牛币,偷偷放进了口袋.
每日推荐:
5998/1000排名<font color="#FF昨日变化6主题帖子积分
熟悉之中, 积分 998, 距离下一级还需 2 积分
熟悉之中, 积分 998, 距离下一级还需 2 积分
在线时间371 小时
确实很犀利,先用一些时间再说
每日推荐:Unity3D如何开发最简单的VR游戏
VR是一种可创建和体验虚拟世界(Virtual World)的计算机系统, 是一种可以创建和体验虚拟世界的计算机仿真系统。它利用计算机生成一种模拟环境,是一种多源信息融合的交互式三维动态视景和实体行为的系统仿真使用户沉浸到该环境中。
作为一个unity3d初学者,怎样开发一款3D游戏呢,或者说,怎样最快的将自己现有的unity3d项目开发成VR项目呢,这里,本文给大家推荐一款VR转换器《神之眼VR》,这是一款可以将3D项目输出为VR效果的软件,官方简介:离线版软件下载地址:接下来就简单了,新建一个U3D工程,(任意版本的u3d都可以,这里用5.2.2版本的u3d)这里随意拉几个Cube然后生成Exe软件生成好以后,打开下载好的神之眼转换器接下来见证奇迹的时候到了可以打开设置选择不同的VR展现形式,1.3.0版本,集成了左右格式,上下格式,红蓝格式,隔行格式,三星裸眼,绿幕,白条3D,深度裸眼,根据不同的需求,可以直接输出对应效果这就是U3d开发最快捷的VR展现形式,如果有普通项目,需要尽快产品升级VR后的出屏效果,可以用此工具都可以直接转换显示,前期知道了自己项目的显示效果,对后续产品升级有很大的帮助
没有更多推荐了,懂得自己无知,说明已有收获。
浅谈Unity与VR产业,用Unity开发第一款VR应用
部分内容为整合与装载
VR(Virtual Reality的缩写,中文翻译—虚拟现实)概念早在80年代初就被提出来的,其具体是指借助计算机及最新传感器技术创造的一种崭新的人机交互手段。
中国VR产业仍在摸索阶段,亟缺复合型专业人才。据领英的全球人才库数据显示,正在起步期的中国VR产业,单以绝对人数来看,并不缺乏VR从业者。但高质量、专业的VR人才的储备不完善,当前很多VR人才都是为了业务发展需求而从企业其他部门抽调而来的,同时,产业生态建设和产业链部分环节的缺失,成了限制产业发展的一大重要因素。前段时期,小米CEO雷军接受《日本经济新闻》专访,雷军表示小米已经成立研发中心开发VR产品,未来5年才能成熟。3月18日下午,阿里巴巴宣布成立VR实验室,4月1日下午,淘宝推出全新购物方式Buy+,利用计算机图形系统和辅助传感器,生成可交互的三维购物环境。
这样炫酷的三维视觉技术,不仅是可以让你随时随地的身临其境的购物,更是可以随意切换场景,对比买回家之后的效果。据阿里巴巴透露,该计划将于四月后上线。是不是很期待?
VR发展的障碍仍然是如何加入其它的感知,比如嗅觉、味觉、触觉。为了达到这一目的,计算机必须能够实现和人脑的交互,这是技术上的最大的难点。中国的VR产业迅速爆发,在短期内资本大量注入,商业展示、线下体验店等多种形式的商业化进程遍地开花,但一方面又缺乏足够成熟的产业生态体系支持长期发展。众多的VR 线下体验店基本主打单一内容体验,盈利来源于消费者对于VR的好奇心。但单一化的内容体验能够持续多久,或许是商家最难预判的难题。因此,商家更需要的是内容提供商在内容差异化上做出更多创新,才能让其商业模式得到可持续发展。
2016年,虚拟现实迎来井喷式发展,数据显示,预计到2018年,VR用户将达到675.2万,2020年将近3000万。而最近除了国美与暴风魔镜在北京国美马甸店正式揭幕号称国内最大移动VR线下体验馆——“暴风魔镜国美移动VR体验馆”。随后,苏宁控股董事长张近东在2016中国电子商务大会上表示,未来3个月将在全国建设300个VR体验馆,打造中国最大的VR体验平台。如今,不少一二线城市各种VR体验店犹如雨后春笋,成为VR线下体验的急先锋。如万达院线、IMAX,也相继宣布加入VR线下体验的阵营。据此,距离中国VR市场成熟已经不远了,很快VR将进入人们的生活中。
还有一个大家关心的问题,就目前而言,虚拟现实技术还属于新生事物,由于使用了各种的高科技配置,因此成本较高。去年Facebook的首席执行官马克·扎克伯格展示的Oculus Rift头盔,预售价格为399美元(约合人民币3920元),这对普通用户来说是一笔不小的金额,所以,这也是阻碍VR市场成熟的阻力。
浅谈Unity与VR
对于大多数人来说,可能不知道Unity3D是什么,但是却知道VR虚拟现实是什么,更不会把VR虚拟现实和Unity3D联系在一起,外行的人根本不知道这两者之间有什么关系。那么,今天奇酷学院(www.qikuedu.com)Unity3D培训老师来给你讲解一下Unity3D与VR虚拟现实之间的区别和联系分别是什么?
  了解Unity3D与VR虚拟现实之间的区别和联系之前,我们首先要弄明白,什么是Unity3D?什么是VR虚拟现实?搞清楚这两个名词的含义,有助于帮助我们接下来对这两者之间的区别和联系的理解。
  什么是Unity3D?Unity3D是一软专业3D游戏引攀,其具备跨平台发布、离效能优化、高性价比,AAA级游戏画面演染效果等特点。目前Unity3D应用范围广泛,从手机游戏到联网的大型游戏,从严肃游戏到电子商务,再到VR虚拟现实均可完美呈现。
  什么是VR虚拟现实?虚拟现实(VirtualReality,简称VR),是由美国VPL公司创建人拉尼尔(JaronLanier)在20世纪80年代初提出的。具体内涵是:综合利用计算机图形系统和各种现实及控制等接口设备,在计算机上生成的、可交互的三维环境中提供沉浸感觉的技术。
  通过什么是Unity3D?什么是VR虚拟现实?这两个名词的解释,不难发现,VR虚拟现实是通过Unity3D开发引擎,结合其他语言基础做出来的效果,也就是说,学会Unity3D开发引擎,可以从事VR虚拟现实的相关工作。简单来说Unity3D开发引擎是工具,VR虚拟现实是结果。
  目前全球已超过九十万名开发者使用Unity3D,而且作品数量不断与日俱增,尤其目前在AppStore内有超过1500种移动平台游戏以及横跨许多国家上百个网页游戏都是以Unity3D为平台所开发的。这些开发者也包含许多国际知名厂商,例如法国育碧Ubisoft,美商艺电ElectronicArts,德国游戏巨头Bigpoint公司、迪斯尼Disney、乐高LEGO等。
  Unity3D开发引擎的产品特点
  1.支持多种格式导入:
  整合多种DCC文件格式,包含3dsMax,Maya,Lightwave,Collade等文档,可直接拖拽到Unity中,除原有内容外,还包含Mesh、多UVs,Vertex,Colors、骨骼动画等功能,提升7游戏制作的资源应用。
  2.AAA级图像渲染引擎:
  Unity渲染底层支持DirectX和OpenGL。内置的100组Shader系统,结合了简单易用,灵活,高效等特点,开发者也可以使用ShaderLab,建立自己的Shader。先进的遮挡剔除(OcclusionCulling)技术以及细节层级显示技术(LOD),可支持大型游戏所需的运行性能。
  3.高性能的灯光照明系统:
  Unity为开发者提供高性能的灯光系统,动态实时阴影、HDR技术、光羽&镜头特效等。多线程渲染管道技术将渲染速度大大提升,并提供先进的全局照明技术(GI),可自动进行场景光线计算,获得逼真细腻的图像效果。
  4.NVIDIA专业的物理引擎:
  Unity支持NVIDIAPhysX物理引擎,可模拟包含刚体&柔体、关节物理、车辆物理等。
  5.高效率的路径寻找与人群仿真系统:
  Unity可快速烘焙三维场景导航模型(NavMesh),用来标定导航空间的分界线。目前在Unity的编辑器中即可直接进行烘焙,设定完成后即可大幅提高路径找寻(Path-finding)及人群仿真(CrowdSimulation)的效率。
  6.友善的专业开发工具:
  包括GPU事件探查器、可插入的社交API应用接口,以实现社交游戏的开发;专业级音频处理API、为创建丰富通真的音效效果提供混音接口。引擎脚本编辑支持Java,C#,Boo三种脚本语言,可快速上手、并自由的创造丰宫多彩、功能强大的交互内容。
  7.逼真的粒子系统:
  Unity开发的游戏可以达到难以皿信的运行速度,在良好硬件设备下,每秒可以运算数百万面以上的多边形。高质量的粒子系统,内置的Shuriken粒子系统.可以控制粒子颜色、大小及粒子运动轨迹,可以快速创建下雨、火焰、灰尘、爆炸、烟花等效果!
  8.强大的地形编辑器:
  开发者可以在场景中快速创建数以千计的树木,百万的地表岩层,以及数十亿的青青草地。开发者只铸完成75%左右的地貌场景,引擎可自动填充优化完成其余的部分。
  9.智能界面设计,细节凸显专业:
  Unity以创新的可视化模式让用户轻松建构互动体验,提供直观的图形化程序接口,开发者可以玩游戏的形式开发游戏,当游戏运行时,可以实时修改数值、资源甚至是程序,高效率开发,拖拽即可。
  10.市场空间:
  iOS,Android,Wii,Xbox360,PS3多平台的游戏发布。仅需购买iOSPro或AndroidPro发布模块就可以在iPhone或iPodTouch或Android系统等移动终端上创建任何酷炫的二维三维、多点触控、体感游戏,随后可将游戏免费发布到自己的移动设备上测试运行,增添修改的方便性。
  11.单机及在线游戏发布:
  Unity3D支持从单机游戏到大型联网游戏的开发,结合Legion开发包和Photon服务器的完美解决方案,轻松即可创建MMO大型多人网路游戏。而且在开发过程中,Unity3D提供本地客户《NativeClient)的发布形式,使得开发者可以直接在本地机器进行测试修改.带助开发团队编写更强大的多人连线应用。
  12.TeamLicense协同开发系统:
  TeamLicense可以安装在任何Unity里,新增的界面可以方便用来进行团队协同开发。避免不同人员重复不停的传送同样版本的资源至服务器,维持共用资源的稳定与快速反应其中的变化,过长的反应更新时间将会影响团队协同开发的正确性与效率。
  13.可视化脚本语言u:
  可视化脚本编辑语言u,具有高度的友好界面、整合性高、功能强大、修改容易等特点。开发者只祷将集成的功能模块用连线的方式,通过逻辑关系将模块连接,即可快速创建所铸脚本功能,非常适合非编程人员与项目制作使用。
  14.Substance高写真动态材质模块:
  Substance是一个功能强大的工具,通过任何的普通位图图像,直接生成高品质的次时代游戏设计专用材质(法线图,高度图,反射贴图等》,为DCC工具或游戏引擎(如Unity3D)提供高级的渲染效果。
  在Unity3D这么强大的技术支持下,VR虚拟现实的效果是可以轻而易举的实现,其中人机交互技术是密不可分的组成部分,人机交互技术主要研究方向有两个方面,分别是:人如何命令系统;系统如何向用户提供信息。众所周知,人在使用计算机方面的感受(即人机交互部分的友好度)直接影响到人对系统的接受程度,而这两个方面直接决定了人机交互部分的友好度,这是Unity3D与VR虚拟现实之间的主要关联。
  虚拟现实在各个行业和领域应用得越来越广泛,而同时也暴露出了一些不可忽视的问题,如对现实世界的隔离,与人类感知外部世界的方式有冲突等等。这些问题,都需要Unity3D开发引擎进行调整和研发,Unity3D开发引擎将计算机生成的虚拟物体或关于真实物体的非几何信息叠加到真实世界的场景之上,实现了对真实世界的增强,同时,由于用于与真实世界的联系并未被切断,交互方式也就显得更加自然,这就是两者之间亲密结合的成果,也是目前最热门的VR虚拟现实受大家喜欢的根本所在。
用Unity开发第一款VR应用
随着Oculus宣布1月6日开启预售,2016年很可能成为VR游戏元年,但很多的调研显示,手游设备才是市场增长的关键,SuperData发布的报告显示,2016年全球VR游戏市场规模预计在51亿美元左右,消费者设备安装量在3890万左右,凭借价格门槛的优势,以谷歌Cardboard和三星Gear VR为代表的移动VR设备很大可能成为用户量最大的设备,可能占据2016年虚拟现实设备安装量71%的份额,达到2700万。
最近,一位从事VR游戏研发的开发者在自己的博客中展示了如何用Unity和Cardboard把一款3D游戏变成VR游戏的方法,他在文章最后还表示,你甚至可以用这种方法把游戏转化为AR游戏,或者从头开始做新的VR游戏,以下是Gamelook编译的博文:
很多的科幻电影都展示了用人类意志控制物体的能力,但到目前为止,这仍旧是一种幻想,目前还没有技术可以实现这一点。在这份新手教学博客中,你可以学到如何用Unity做一款兼但的虚拟现实游戏,配合谷歌Cardboard创造比较简单的VR体验,本文主要讲的是:
把Cardboard摄像头集成到你的游戏中;调整UI元素以适应VR模式;做VR模式下可以选择的按钮;在游戏运行的时候程序化地把游戏在常规和VR模式下进行切换。
什么是谷歌Cardboard?
理论上说,创造VR体验是非常直接的,你在屏幕上展示的并不是一个单独的图片,而是需要2个。因为它们来自位置相隔几英寸距离的两个摄像头,玩家们从左摄像头看到的是左边图像,右边看到的则是右边图像,这就创造了游戏景深。
此外,再加上一些不错的动态传感器,你可以探测到用户面朝哪个方向。把这些和你所创造的3D世界结合起来的话,就可以获得一个沉浸感很强的游戏体验。在实际情况中,在一个高分辨率的屏幕上展示两个图像需要非常复杂的硬件,还需要可以追踪玩家的头部运动,把所有的功能集成到一个设备商,还要控制其重量,以免让用户戴起来太累。
然而,随着谷歌Cardboard的出现,每一台智能机都有可能与Cardboard协作,可以用你手机的屏幕与传感器,把它们变成VR设备的一种,而你所需要的,只是一些Cardboard和塑料镜片。
需要注意的是,你可能大量用到Unity GUI,所以如果从来没有尝试过这个工具,那么最好是看看Unity GUI教程。想要用Google Cardboard做出自己的VR游戏,你需要以下工具:
Unity专业版,版本5以上;一部智能机,可以是iPhone 5代以后的设备,也可以是4.3以上版本的设备。需要说的是,本文假设你是在用iPhone获得VR游戏体验。
如果你从来没有用过Unity而且也不熟悉界面,那最好是去读Unity教程介绍
可能会有人说,我如何获得一个Cardboard硬件呢?
当然,如果还没有Cardboard设备的话,最好是从供应商那里选购,价格加运费大约是20-30美元,如果你觉得自己非常善于DIY,也可以动手做自己的版本。在购买Cardboard的时候,要注意提到V2或者Cardboard 2.0的字样,因为它们适配大量的手机,包括大屏幕的iPhone 6+在内,它们还支持用户通过按钮进行输入操作。
没有Cardboard设备可以吗?
从某种程度上说,是可以的,你仍然可以在自己的设备上运行做出来的游戏,它看起来会是这样的(下图):
在玩游戏的时候,如果你用恰当的方式盯着屏幕看,也可以找到VR的感觉。如果你四处移动手机,就可以进行控制。虽然你也可以玩这款游戏,还能够看到游戏的实际效果,但这种体验是比较有限的。
长话短说,如果你没有足够的耐心等待Cardboard到货,你仍然可以从本文中学到东西,只是,如果有合适的设备,你能够学的东西更多。
样本游戏:Ninja Attack is Back!
投入一些时间尝试这个样本游戏,下载并解压这个Unity新手项目。接下来就是运行Unity,在欢迎界面,选择打开(Open)-找到StarterNinja文件夹,打开NinjaAttack项目。
在项目浏览器(Project Browser)中,在Assets里双击MainScene按钮,然后点击Play尝试一下这款游戏。在图片中,你是左边的忍者,随着怪兽在屏幕中出现,你可以在屏幕上点击任何地方释放一个忍者之星消灭怪兽,在击杀20个怪兽之后,你就赢了,但是,如果怪兽到达了左边的红色区域,你就输了。
这款游戏看起来很熟悉是吗?熟悉的读者可能会发现,它其实就是我之前介绍SpriteKit以及Cocos2D教程用到的游戏,不过与之不同的是,这里的游戏是用3D渲染的。当然,你并不一定能够真正地看到非常酷炫的3D效果,这款游戏使用的是上帝视角,所以对所有的polygon进行渲染总觉得浪费时间,所以,你现在可以发现为什么这款游戏非常适合做成VR了。
开始使用Cardboard
你需要做的第一件事就是为Unity下载Cardboard SDK。接下来,把它导入到你的项目中。从Unity的主菜单,选择Assets\Import Package\Custom Package,然后选择你刚刚下载的CardboardSDKForUnity.unitypackage。确保所有东西都被选中,反选Legacy文件夹,然后点击Import按钮。
为了让你的游戏作为一个VR体验,你需要用到一些技巧,在Project Browser中的Cardboard\Prefabs文件夹里,把CardboardMain Prefab拖拽到你的场景中,在Inspector中,给其赋予和你的忍者角色一样的位置(5.53,1.13,0.122),并且要进行90度Y Rotation。
你会发现的是,它比忍者的中心部位略高,这样可以展现出你在看他的眼睛。
接下来,选择主摄像头(Main Camera)并且在Inspector中反选,做raccoon忍者对象的时候也需要同样的操作。现在,把游戏在Unity编辑器中再次运行,你就会看到一些类似于3D场景的东西。如果你在移动鼠标的时候按住选择键,你的摄像头就会随着头部的运动进行旋转。
在iOS设备上运行你的游戏场景
在Unity编辑器中运行你的游戏是非常不错的,但最后一次检查的时候,用VR头盔配上电脑显示器看起来会让人很痛苦,所以我们需要适配到iPhone上。
选择File\Build Settings,iOS应该已经被选为你的默认平台,点击Click Player Settings然后转换到Inspector。
在Resolution and Presentation菜单下,把Default Orientation设置成Landscape Left。
在其他设置(Other Settings)中,把Bundle Identifier改成你的公司所需要的东西,比如com.(你的公司名).NinjaAttackVR。
把目标设备改为iPhone,把iPhone和电脑进行连接,选择Build和Run,然后给输出文件夹命名,这个名字你可以随意取。
这时候,Unity就会导出你的项目,然后它就会自动在Xcode中打开,如果没有打开,启动Xcode并且手动打开生成后的项目,运行然后在手机上尝试。首次运行游戏的时候,你需要一系列的设置过程,比如可以在Cardboard硬件上扫描二维码,这样Cardboard SDK就可以根据你的设备、距离等进行画质微调。
需要注意的是,如果设置过程中,你在扫描二维码的时候出现了 网址打开错误,那就必须调整Xcode项目中的info.plist,苹果开发者论坛中有说到这个问题,感兴趣的童鞋可以亲自查阅。
接着,把你的手机插入Cardboard当中,来回转头以调整摄像头视角,你就可以看到相对不错的3D画面了。
再一次把它做成游戏
能够看到你的游戏世界是非常不错的,但初次之外,你还需要把玩法加入到游戏中,特别是你需要从忍者面朝的方向扔出忍者之星,这是你将要做的第一个玩法。
对于UI来说,Cardboard支持一个按钮,看起来可能是比较有限,但如果把它和头部的动态追踪相结合的话,它可以做出更为复杂的互动。在《Ninja Attack》中,你通过Cardboard.SDK.VRModeEnable资源侦测玩家是否开始了VR模式,检查按钮是否和Cardboard.SDK.Triggered资源同时按下去了,如果这些值都对,就可以在用户面朝的方向扔出忍者之星。
打开你的NinjaStarLauncher.cs脚本,你会发现它在Inspector里是和GameLogic GameObject连在一起的。
创造一个新的private变量:
private Vector3 _vrShooterO
把它在Start() method中初始化:
_vrShooterOffset = new Vector3(0.0f, -0.4f, 1.0f);
用以下代码替换Update ():
这就可以运行了,接下来我们看看Update()是做什么的:
你首先检查游戏是否在VR模式,用户是否按下了按钮检查Cardboard.SDK singleton object上的资源。
在此之后,你可以调用LaunchNinjaStarFrom()释放一个忍者之星,你需要用到两个parameter:
第一个是GameObject头文件,Cardboard库会为你调出来,所以它应该是已经指向了正确的位置;第二个是轻微偏移,这样你面前的忍者之星就会看起来更真实,否则的话你扔出去的忍者之星就像是在四只眼之间进行运动,虽然看起来很cool,但给人的感觉很奇怪。
由于你的Ninja Star GameObject已经被设计飞往特定方向,所以它会朝着正确的方向进攻。
再试一次,这时候,你可以转头扔向坏人,输赢logic仍旧起作用。
解决Game Over菜单
你可能已经注意到了,当游戏结束的时候,用之前的Game Over按钮,你的角色仍旧是在屏幕的左边。这款游戏用到了Display Canvas来展示Game Over界面,Unity最新的GUI教程中有讲到这一点,它总是出现在游戏窗口的顶部。这个标签适用于大多数的游戏GUI,因为它可以自动适应到你屏幕的上方,不论你的摄像头在做什么,而且它可以非常不错地适应不同屏幕尺寸。
但在这个案例中,你需要一个存在于游戏世界中的GUI canvas,有一部分原因是它可以在3D环境中更好渲染,但还因为不希望把玩家爱是叫锁定到摄像头上。你的玩家们需要可以上下自由地看,这样他们可以看到不同的UI元素,找到最活跃的然后点击按钮。
创造一个新的Canvas
在Hierarchy菜单下选择GameOverCanvas,右击并且选择复制,重命名为VRGameOverCanvas,这样可以使它与原来的进行区别开来,把GameOverTxt重命名为VRGameOvertxt。
在VRGameOverCanvas组件中,把渲染模式改为World Space。
在Rect Transform组件中,把位置改为(-2.24,1.1,0.07),然后进行90度Y Rotation
最后,把X和Y Scale改为0.009,当所有一切完成的时候,VRGameOverCanvas看起来因该是这样的:
你可以在Game View视角下看到两个canvas是大致重叠的(当游戏不运行的时候):
这些值是哪里来的呢?坦白地说,我其实是调整到自己通过Cardboard摄像头看起来比较不错为止。有时候,编程更多的是一门艺术而不是学科。
支持两个Canvas
接下来,你需要更改GameController.cs,这样它才会发现两个Canvas打开和GameLogic GameObject脚本,它也是和GameLogic GameObject联系在一起的。把以下的两个公共变量加入到你的class里:
public Canvas VRGameOverC
public Text VRGameOverT
在resetGame()的开始加入如下代码:
VRGameOverCanvas.enabled =
用以下代码取代Gameover():
public void GameOver(bool didIWin) {
isGameOver =
_didIWin = didIW
string finalTxt = (_didIWin) ? “You won!” : “Too bad”;
if (Cardboard.SDK.VRModeEnabled) {
VRGameOverCanvas.enabled =
VRGameOverTxt.text = finalT
gameOverCanvas.enabled =
gameOverTxt.text = finalT
这个展示了正确的Canvas和Text对象,取决于你是否在VR模式(开启Cardboard.SDK.VRMode).
在你保存了脚本之后,你需要把正确的对象分配到新的公用变量。在Inspector里找到GameController,点击每个新变量旁边的目标,然后选择VRGameOverCanvas对象作为你的VR游戏Over Over Canvas变量,把VRGameOverTxt对象选为你的VR Game Over Txt变量。
需要注意的是,可能你会奇怪,为什么是很麻烦地支持两个Canvas而不是至改变现有的一个呢?原因是,你既需要支持上帝视角,还需要支持VR模式,所以一定要进行优化。
如果你准备现在就运行游戏,就可以发现VR模式里的游戏结束界面展示的很自然。你可以上下看界面的不同部分,现在所有缺少的东西就是再来一次的按钮。
增加Gaze输入方式
幸运的是,Unity内置了‘在使用world-space GUI Canvas的时候,摄像头中心点可以作为鼠标使用’,但你需要提供额外的脚本才能使它在VR界面中进行使用。
首先,扩展Cardboard Main\Head,找到主摄像头并把它重命名为VR Main Camera。选中VRGameOverCanvas对象,你们应该可以看到一个事件摄像头,点击Hierarchy里的EventSystem项目,点击增加组件按钮,并增加GazeInpute Module脚本。这个脚本可以确保Unity的GUI系统了解Cardboard摄像头的工作方式。
检查VR Mode Only,因为在VR模式下的时候,只需要这么运行就可以了。最后,点击你刚刚增加的Gaze Input Module Component,然后选择Move Up,重复一次,确保它可以出现在触屏输入和独立输入模式中,这可以确保Gaze Input Module在游戏进行的同时优先选择输入方式。当所有都做好的时候,它看起来应该是这样的:
现在,你就可以进行尝试了。这一次,当你把视角放到Play Again按钮的时候,它就会变绿,让你重新开始一场新的游戏。
或许你会发现这个版本的游戏在VR模式下玩起来有点难,这是因为你的视角是缩水的,所以在你看着错误的方向时,敌人很容易从你身边溜过去。而且,你无法迅速改变瞄准方向,你会因为脖子转速的限制而影响到游戏操作。你让玩家体验VR模式并不是为了惩罚他们,所以,你该如何调整呢?当然,可能会有人建议把敌人速度降低。
在Prefabs文件夹中选中EvilSlimeEnemy Prefab,然后打开EnemyMover.cs,把以下代码增加到Start(),随后设置速度:
这会让你的游戏在VR模式下变得更简单,所以玩家们不至于因为选择了VR模式就获得糟糕体验。
解决屏幕上的分数显示问题
你还需要解决的一个UI问题是屏幕上的分数,这个就需要不同的方式来处理了。虽然它仍然需要在VR模式中恰当的被显示出来,但你更希望它在你看任何方向的时候都固定在摄像头上。
选中Cardboard Main\Head,右击并选择UI\Canvas,重命名新的canvas为VRScoreCanvas,把渲染模式调整为World Space,为其赋予以下值:
位置(0,1,2.5)、宽度400、高度100、旋转(0,0,0)、Scale(0.5,1)。当完成之后,游戏看起来该是这样的:
看起来可能你的文本很奇怪地放在了屏幕中央,但在VR模式里,你能够看到的世界比正常情况下是少很多的,所以你在游戏中看到分数的时候应该是在边缘部位的,你可以自由进行位置调整,以使其适应你的手机。
接下来,使用文本对象展示你的分数,这个过程和Game Over的做法类似。
打开GameController.cs并增加一个新的公用变量:
public Text VRScoreT
接下来,你每次更新scoreTxt的时候都需要更新VRScoreTxt,在ResetGame() method中,把以下代码加在每次更新后的scoreTxt之后:
VRScoreTxt.text = “–“;
然后把这行代码增加到GotOne(),也放在更新scoreTxt的后面:
VRScoreTxt.text = “” + _currS
保存你的脚本,回到Unity,然后你会发现GameLogic当中的GameController Component如今可以输入VR Score Txt变量了,点击临近的目标然后选择你的VRScoreTxt文本对象。
再次体验你的游戏,现在,你就可以看到分数出现在左上角了,还可以允许你的头部进行运动。
VR模式的切换
由于你的游戏同时支持上帝视角和VR模式,你应该给用户自由切换的选择,UI做起来是很直观的,你只需要在上帝视角模式中加入一个简单的按钮,让玩家们来回切换模式即可。
首先,你需要增加切换的代码,选择Hierarchy里的GameLogic,点击增加组件,选择新脚本(New Script)然后把脚本命名为CardboardSwapper。
打开并用以下内容替换class代码:
这个class里最重要的method就是ActiveVRMode,它是用来激活Cardboard的VR模式的。其余的logic负责控制场景中的多个GameObject,取决于是否处于VR模式,你在上帝视角是看不到某些东西的。
你还可以发现的是,当你侦测后面按钮的时候调用了Switch(),这个功能非常适合测试。
你还需要为GameController脚本增加更多的logic,这样它才能在切换模式的时候展示或者隐藏一些东西,打开GameController.cs,把这个method加进去:
public void RefreshGameOver() {
gameOverCanvas.enabled =
VRGameOverCanvas.enabled =
if (isGameOver) {
GameOver(_didIWin);
保存一切然后重新回到Unity界面,选择GameLogic然后向下滚动到Cardboard Swapper组件,对于Cardboard Object数列,把它的大小赋值为1,然后放到场景中的CardboardMain GameObject中。这样不仅可以禁用你的Cardboard Head让你回到上帝视角摄像头模式,还可以禁用VRScoreCanvas。
对于Mono Object数列,把它的大小赋值为3,然后为你的场景选择Canvas、Main Camera和raccoon ninja,不要从Assets里选择。
最后你需要在上帝视角canvas为用户增加一个按钮,为了节约时间,我已经把它做好了,位于prefabs文件夹中。
从Assets\Prefabs中把CardboardButton推拽到Hierarchy,这样它就成为了你的Canvas对象的子对象,确保其位置设定是(-50,50,0):
在你的按钮对象底部,把它们连接起来,这样点击按钮的时候就可以调用CardboardSwapper.Switch() method,你可以从这个动画看看是如何做出来的:
再次尝试你的游戏,点击屏幕右下方的按钮切换至VR模式,然后单机Cardboard界面背后的按钮切换到上帝视角模式。做到这里,你的VR模式切换就已经完成了。
现在,你可以把Unity中的任何3D游戏做成VR游戏了,而且只需要一个Cardboard和一些塑料镜片,这是可以让所有人都能够体验的VR游戏。版本的做法和iOS大致相同,谷歌的Unity
Developer指南还提供了更多的技术信息。最后,你甚至可以为你的VR游戏增加AR功能。
最后,你可以尝试Unity里所有的3D游戏,看是否能够顺利地做成VR体验,或者,这个教程也可以让你做出全新的VR游戏。
--------------------------------------------------------------------------------------------------------------------
【转】Unity3D关于VR的Demo:
--------------------------------------------------------------------------------------------------------------------
Unity3D官方VR的Demo:
--------------------------------------------------------------------------------------------------------------------
欢迎转载,但请保留文章原始出处
没有更多推荐了,

我要回帖

更多关于 简单工厂模式实例 的文章

 

随机推荐