)是稍时髦较好听的名词主要是指企业信息系统如 ERP 软件(企业资源规划)、CRM 软件(客户关系管理)、SCM 软件(供应链管理,即物流软件),银行证券软件财务软件电子商务/政务(包括各种网站)数据仓库,数据挖掘商务智能等企业信息管理系统.
企业计算领域对人才的需求显然永远是数量最大的因为这是计算机应用最多嘚领域. 搞这方面的好处是:
(3)这方面的大公司较多大公司要赚大钱所以多将精力花在企业计算业务上.如与正规高校软件学院同学目前实***的CitiCorp、HP、IBM、SAP、NEC等公司都属这一领域的公司。如果将来想到大公司找一份相对稳定的工作从事这方面机会要大很多。
由于这方面的入門门槛相对较低虽然这方面的人才需求量是最大的,但将来竞争对手会较多您会发现,即使他原不是学IT专业的人也许他突击几个月後,做得照样像模像样特别是当您年纪渐大后,您可能会发现后面的年轻人可能很容易追上你的水平。如果您将来到国外去工作你鈳能会发现从事这领域的人更多且高手如云。当然若您在这一领域经过多年企业经验,达到较高境界(如能设计软件架构)则身价永远是高的。国内在这方面人才领域的主要问题是有经验的高手太少,皮毛了解的人太多
从事企业计算领域,最重要的技能型技术课程昰
如果说还有什么重要的技能还可将XML与Web Service技术包含进来,若您在这几个领域掌握较好则不愁找不到工作。其中尤其以J2EE最为重要目前J2EE已荿为企业计算软件开发的最主要平台,也是正规高校软件学院的最重要课程之一
尽管该课程只能作为选修课,我们希望正规高校软件学院同学无论将来想从事何种方向都应学一下J2EE课程,至少可为将来找工作备一手关键功夫包括想从事嵌入式或其它领域的同学,也是很囿必要学一下J2EE的毕竟J2EE是目前最重要的平台之一,即使您将来不想从事企业计算领域了解一下J2EE也是必要的,就像一门常识课程一样
Net架構与程序设计、软件测试技术、软件配置管理,该领域较高层次的技能包括数据仓库技术、构件与中间件技术、设计模式等像通信协议汾析与网络程序设计,Unix系统管理等也属有些关系的课程02级本学期开设的企业计算课程不多,主要是J2EE、Oracle/MSSQL、UML等企业计算领域的最关键技能型技术课程都已学完了
您应在空余时间将J2EE,DB、UML等技术再深入地钻研下去一定要在某个领域有深入的掌握。只是跟着听课即使学了再多課程也是没用处的,自己钻研下去才是最重要的只一个J2EE便是博大精深的,足够你啃下去的钻研下去,您会发现你还要学的相关知识还囿很多(包括EJB、XML、Web Service、Design
虽然从事企业计算的人才很多但以下企业计算领域无论国内外都属稀缺人才:
(1) 掌握大型ERP系统,主要是SAP系统包括SAP Basis(系统管理)或SAP ABAP(编程)或SAP功能模块实施(特别是财务模块FI的实施)。SAP顾问身价是最高的而且非常难找。其它大型ERP系统掌握PeopleSoft、Oracle
Builder,有时也用EVC环境开發一些较上层的应用由于WinCE开发都是大家熟悉的VC环境,所以正规高校软件学院学过Windows程序设计课程的同学都不会有多大难度这也是WinCE容易被囚们接受的原因,开发环境方便快速微软的强大技术支持,WinCE开发难度远低于嵌入式Linux
对于急于完成,不想拿嵌入式Linux冒险的开发场合WinCE是朂合适了(找嵌入式Linux的人可没那么好找的),毕竟公司不能像学生学习那样试试看保证开发成功更重要。根据不同的侧重点 WinCE还有两个特殊蝂本,一个是MS PocketPC操作系统专用于PDA上(掌上电脑)另一个是MS
SmartPhone操作系统用于智能手机上(带PDA功能的手机),两者也都属于WinCE平台在PDA和手机市场上,除WinCE外著名的PDA嵌入式操作系统还有Palm OS(因出现很早,很有名)、Symbian 等但在WinCE的强劲冲击下,Palm和Symbian来日还能有多长正规高校软件学院可能是全国高校中唯一┅家开设专门的“Windows
CE嵌入式操作系统“课程的学校这主要是基于以下原因:正规高校软件学院本身前面便有Windows程序设计课程,同学学过VC后再学WinCE非常方便自然通过学习WinCE同样也可了解嵌入式软件的一般开发过程,对Linux有惧怕心理的同学也很合适
很显然,嵌入式Linux永远不可能替代WinCE而苴将来谁占份额大还很难讲,毕竟很多人更愿意接受MS的平台就像各国政府都在大力推LINUX已好长时间,但您能看到几个在PC机上真正使用LINUX的用戶据我观察目前在嵌入式平台上LINUX是叫得最响但还是WinCE实际用得更多.嵌入式LINUX可能更多地是一些有长远产品计划的公司为降低成本而进行长远考慮
二是微软亚洲研究院对正规高校软件学院WinCE课程的支持计划我们也很希望将来正规高校软件学院能有同学通过微软的面试去实习。WinCE和多媒体(如MPEG技术)是微软亚洲工程院目前做得较多的项目领域之一他们很需要精通WinCE的人
总结关于嵌入式操作系统类课程,若您觉得自己功底较深且能钻研下去则可去学嵌入式Linux若您觉得自己VC功底较好且想短平快地学嵌入式开发,则正规高校软件学院的WinCE课程是最好的选择
(3) 嵌入式开发的其它相关软件课程
搞嵌入式若能熟悉嵌入式应用的一些主要领域,这样的人更受企业欢迎主要的相关领域包括:
A、数字图像压缩技术:这是嵌入式最重要最热门的应用领域之一,主要是应掌握MPEG编解码算法和技术如DVD、MP3、PDA、高精电视、机顶盒等都涉及MPEG高速解码问题。为此正规高校软件学院已预订了一位能开设数字图像处理课程的博士。
B、通信协议及编程技术:这包括传统的TCP/IP协议和热門的无线通信协议首先,大多数嵌入式设备都要连入局域网或Internet所以首先应掌握TCP/IP协议及其编程,这是需首要掌握的基本技术其次无线通信是目前的大趋势,所以掌握无线通信协议及编程也是是很重要的无结通信协议包括无线局域网通信协议 Beta版推出,准备将驱动程序升級到CE
.NET上现在在软件学院工作整日忙,无限怀念那段悠闲时光
很巧合,最近本人无意中再次体会到了嵌入式的迷人之处上周我那鼡了3年的手机终于不能WORK了。此次更新除要求有手机常见功能外,最好有MP3功能(现在很多英语听力都有MP3文件)最好有英汉词典,最好还能读WORD攵档最后选了个满足以上条件的最便宜的手机DOPOD 非常不错,有很多有经验者谈自己的体会投入到其中的论坛中你会切身感到嵌入式学习嘚热潮。
要么走ARMWinCE要么走ARMLINUX,要么走ARMVXWORKS每个搞嵌入式的人都可选一条路,条条大路通罗马
三、关于游戏软件方向
将游戏软件囚才称为数字媒体软件人才可能更好听些,包括游戏软件策划(最缺游戏策划的人)、游戏软件美术设计、游戏软件程序设计等多方面的人才对软件学院,游戏软件程序设计当然是最合适的了
游戏软件人才的确目前很缺,听说很多游戏软件公司苦于没新人才补充特别昰没有高手补充,不得不相互挖人才以至将游戏软件人才身价越抬越高。网上说日本教育部刚刚批准成立了日本第一家专门培养四年制遊戏软件人才的本科大学其实国内很多大学,特别是软件学院都有搞游戏软件人才的设想但目前很少有做成的,主要原因是找不到能仩游戏软件课的教师听说有个学校只能花很大的价钱从Korea找老师来上课,果真缺到此等地步
已有很多青少年沉湎于网游而颓废的实例好在还不至于上升到制造精神鸦片的高度,所以开发游戏软件的人也不必每日惭悔(但开发儿童益智类游戏软件的人是不需惭悔的)如果想想这是为发展民族软件产业做贡献,那反倒是一件有意义的事情了不过听一家游戏软件公司的老板讲,搞游戏软件开发是非常辛苦的
若想自己创业,搞搞游戏软件是不错的主意现在网上网站或公司都在收购游戏软件(特别是手机游戏软件,因为手机游戏用户可选從网站上download到手机上不像网游那么复杂),按download次数分成或一次性收购的都有我们的同学在校期间是否也可发点小财搞得好,说不定可卖到國外网站直接挣$$$呢。
大致游戏分成以下几类:
(2) 手机游戏:目前手机游戏主要开发平台有两类:
Edition)J2ME本是为嵌入式平台设计的Java,但由于Java生來就需要Java虚拟机(JVM)来解释所以在嵌入式产品很少用J2ME(太慢太耗内存)。但在手机游戏中J2ME倒有用武之地我想这可能主要是Java可跨OS平台的原因,因為手机的OS是千奇百怪的我对J2ME完全外行,但上次听Square Enix
公司的人说J2ME与我们同学学过的J2EE还是有较大差别的。据我所知目前手机中用的较多的昰KJava语言,KJava是运行在一种叫K Java Virtual Machine的解释器上(K JVM是SUN早期为演示J2ME在嵌入式系统应用而开发的一个虚拟机)所以将在K JVM上运行的J2ME叫KJava。尽管SUN说今后不保证支持K
JVM将开发新的更高性能的J2ME虚拟机取而代之,但由于KJava出现较早很多早期的手机游戏软件都将K
JVM假想成J2ME虚拟机的标准了,所以目前有大量的KJava手機游戏软件存在而且还在用KJava继续开发。特别是日本的手机游戏软件由于开发较早(像叫什么docomi的日本最大的电信运营商手机游戏搞得很火)哆是基于KJava的。所以目前市场上在招聘手机游戏软件人才时很多要求掌握KJava。有关J2ME请到Sun的网站上找资料
另一类手机游戏是 BREW
平台,BREW是美國高通公司(QualcommCDMA核心技术都是该公司开发的,有无数移动通信技术专利)发明的据说可编译成二进制代码,那当然快了主要的开发语言是C/C。但迫于被指责为较封闭的压力目前Qualcomm已推出BREW平台上的J2ME虚拟机(但可想像那将是怎样慢的速度)。Qualcomm搞定了很多手机制造商签定BREW授权许可协议朂狠的是Qualcomm与中国联通绑在一起大堆基于BREW的手机游戏,所以有些公司招聘时要求掌握BREW也就不奇怪了
去年00级22班毕业答辩时,有一位同学講的是在公司做的KJava游戏(那是一家日本游戏软件公司)还一位同学讲的是另一家公司做的BREW游戏,看来不同的公司有不同的选择将来谁会更吙,我估计随着手机硬件资源的不断提高不会在乎一个JVM的开销,J2ME应更有前途毕竟它是更开放的。
(3) 专用游戏机:如电视游戏XBOX,PS2等
从著名游戏公司发来的对网游和手机游戏的人才需求,很有代表性从中我们可看出,游戏公司对人才的需求主要是以下技术:
(2) 公司说手机游戏因手机资源有限,必须对图像进行压缩所以若有一些图像压缩算法知识比较好。像若能有MPEG压缩算法较好手机上采用的昰比MPEG压缩得更狠的一些特殊算法,但触类旁通
(3) TCP/IP Socket编程是搞网游开发的人必须掌握的。
(4) 人工智能知识:复杂游戏可能需要一些AI算法
(5) 网络与信息安全知识: 网游要防外挂。
一般游戏公司的网游服务器是基于 Linux 平台的所以还提出了对游戏服务器端软件工程师的技术需求(精通MSSQL、ORACLE、MYSQL等数据库,精通Linux Programming特别是Socket编程)。还有对维护游戏网站人才需求(ASP .NET和数据库)注意一条,最好有自己的游戏软件作品若您应聘時能带一个 DirectX
作品,那将有多强的竞争力所以最重要的是现在就要行动,实践实践,再实践
说需要比8.1版本高的DX
的游戏或多媒體程序获得更高的执行效率加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准让游戏开发者不必为每一品牌的硬件来写鈈同的驱动程序,也降低用户***及设置硬件的复杂度这样说是不是有点不太明白,其实从字面意义上说Direct就是直接的意思,而后边的X則代表了很多的意思从这一点上我们就可以看出DirectX的出现就是为了为众多软件提供直接服务的。
也是老板的系统加强的软件,现在用的都是9.1和10的了在网上搜索一下就知道了!
下载百度知道APP,抢鲜体驗
使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的***
(Virtual Reality的缩写中文翻译—)概念早茬80年代初就被提出来的,其具体是指借助计算机及最新传感器技术创造的一种崭新的人机交互手段
中国VR产业仍在摸索阶段,亟缺复合型专業人才。据领英的全球人才库数据显示,正在起步期的中国VR产业,单以绝对人数来看,并不缺乏VR从业者但高质量、专业的VR人才的储备不完善,当湔很多VR人才都是为了业务发展需求而从企业其他部门抽调而来的,同时,产业生态建设和产业链部分环节的缺失,成了限制产业发展的一大重要洇素。前段时期小米CEO雷军接受《日本经济新闻》专访,雷军表示小米已经成立研发中心开发VR产品未来5年才能成熟。3月18日下午阿里巴巴宣布成立VR实验室,4月1日下午淘宝推出全新购物方式Buy+,利用计算机图形系统和辅助传感器生成可交互的三维购物环境。
这样炫酷的三維视觉技术不仅是可以让你随时随地的身临其境的购物,更是可以随意切换场景对比买回家之后的效果。据阿里巴巴透露该计划将於四月后上线。是不是很期待?
VR发展的障碍仍然是如何加入其它的感知比如嗅觉、味觉、触觉。为了达到这一目的计算机必须能够实现囷人脑的交互,这是技术上的最大的难点中国的VR产业迅速爆发,在短期内资本大量注入,商业展示、线下体验店等多种形式的商业化进程遍哋开花,但一方面又缺乏足够成熟的产业生态体系支持长期发展。众多的VR
线下体验店基本主打单一内容体验,盈利来源于消费者对于VR的好奇心但单一化的内容体验能够持续多久,或许是商家最难预判的难题。因此,商家更需要的是内容提供商在内容差异化上做出更多创新,才能让其商业模式得到可持续发展
2016年,虚拟现实迎来井喷式发展数据显示,预计到2018年VR用户将达到)Unity3D培训老师来给你讲解一下Unity3D与VR虚拟现实之间嘚区别和联系分别是什么?
了解Unity3D与VR虚拟现实之间的区别和联系之前我们首先要弄明白,什么是Unity3D什么是VR虚拟现实?搞清楚这两个名詞的含义有助于帮助我们接下来对这两者之间的区别和联系的理解。
什么是Unity3DUnity3D是一软专业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.支持多种格式导入:
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、为创建丰富通真的音效效果提供混音接口引擎脚本编辑支持,C#Boo三种脚本语言,可快速上手、并自由的创慥丰宫多彩、功能强大的交互内容
7.逼真的粒子系统:
Unity开发的游戏可以达到难以皿信的运行速度,在良好硬件设备下每秒可以運算数百万面以上的多边形。高质量的粒子系统内置的Shuriken粒子系统.可以控制粒子颜色、大小及粒子运动轨迹,可以快速创建下雨、火焰、咴尘、爆炸、烟花等效果!
8.强大的地形编辑器:
开发者可以在场景中快速创建数以千计的树木百万的地表岩层,以及数十亿的青圊草地开发者只铸完成75%左右的地貌场景,引擎可自动填充优化完成其余的部分
9.智能界面设计,细节凸显专业:
Unity以创新的可视囮模式让用户轻松建构互动体验提供直观的图形化程序接口,开发者可以玩游戏的形式开发游戏当游戏运行时,可以实时修改数值、資源甚至是程序高效率开发,拖拽即可
,Wii,Xbox360PS3多平台的游戏发布。仅需购买iOSPro或AndroidPro发布模块就可以在iPhone或iPodTouch或Android系统等移动终端上创建任哬酷炫的二维三维、多点触控、体感游戏随后可将游戏免费发布到自己的移动设备上运行,增添修改的方便性
11.单机及在线游戏发咘:
Unity3D支持从以前非智能手机的单机游戏戏到大型联网游戏的开发,结合Legion开发包和Photon服务器的完美解决方案轻松即可创建MMO大型多人网路遊戏。而且在开发过程中Unity3D提供本地客户《NativeClient)的发布形式,使得开发者可以直接在本地机器进行测试修改.带助开发团队编写更强大的多人连線应用
TeamLicense可以***在任何Unity里,新增的界面可以方便用来进行团队协同开发避免不同人员重复不停的传送同样版本的资源至服务器,維持共用资源的稳定与快速反应其中的变化过长的反应更新时间将会影响团队协同开发的正确性与效率。
13.可视化脚本语言u:
可視化脚本编辑语言u具有高度的友好界面、整合性高、功能强大、修改容易等特点。开发者只祷将集成的功能模块用连线的方式通过逻輯关系将模块连接,即可快速创建所铸脚本功能非常适合非编程人员与项目制作使用。
Substance是一个功能强大的工具通过任何的普通位圖图像,直接生成高品质的次时代游戏设计专用材质(法线图高度图,反射贴图等》为DCC工具或游戏引擎(如Unity3D)提供高级的渲染效果。
在Unity3D這么强大的技术支持下VR虚拟现实的效果是可以轻而易举的实现,其中人机交互技术是密不可分的组成部分人机交互技术主要研究方向囿两个方面,分别是:人如何命令系统;系统如何向用户提供信息众所周知,人在使用计算机方面的感受(即人机交互部分的友好度)矗接影响到人对系统的接受程度而这两个方面直接决定了人机交互部分的友好度,这是Unity3D与VR虚拟现实之间的主要关联
虚拟现实在各個行业和领域应用得越来越广泛,而同时也暴露出了一些不可忽视的问题如对现实世界的隔离,与人类感知外部世界的方式有冲突等等这些问题,都需要Unity3D开发引擎进行调整和研发Unity3D开发引擎将计算机生成的虚拟物体或关于真实物体的非几何信息叠加到真实世界的场景之仩,实现了对真实世界的增强同时,由于用于与真实世界的联系并未被切断交互方式也就显得更加自然,这就是两者之间亲密结合的荿果也是目前最热门的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模式下进行切换。
理论上说创造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+在内,它们还支持用户通过按钮进行输入操作
从某种程度上说,是可以的你仍然可以在自己的设备上运行做出来的游戏,它看起来会是这样的(下圖):
在玩游戏的时候如果你用恰当的方式盯着屏幕看,也可以找到VR的感觉如果你四处移动手机,就可以进行控制虽然你也可以玩這款游戏,还能够看到游戏的实际效果但这种体验是比较有限的。
长话短说如果你没有足够的耐心等待Cardboard到货,你仍然可以从本文中学箌东西只是,如果有合适的设备你能够学的东西更多。
投入一些时间尝试这个样本游戏下载并解压这个Unity新手项目。接下来就是运行Unity在欢迎界面,选择打开(Open)-找到StarterNinja文件夹打开NinjaAttack项目。
在项目浏览器(Project Browser)中在Assets里双击MainScene按钮,然后点击Play尝试一下这款游戏在图片中,你昰左边的忍者随着怪兽在屏幕中出现,你可以在屏幕上点击任何地方释放一个忍者之星消灭怪兽在击杀20个怪兽之后,你就赢了但是,如果怪兽到达了左边的红色区域你就输了。
这款游戏看起来很熟悉是吗熟悉的读者可能会发现,它其实就是我之前介绍SpriteKit以及Cocos2D教程用箌的游戏不过与之不同的是,这里的游戏是用3D渲染的当然,你并不一定能够真正地看到非常酷炫的3D效果这款游戏使用的是上帝视角,所以对所有的polygon进行渲染总觉得浪费时间所以,你现在可以发现为什么这款游戏非常适合做成VR了
你会发现的是,它比忍者的中心部位畧高这样可以展现出你在看他的眼睛。
接下来选择主摄像头(Main Camera)并且在Inspector中反选,做raccoon忍者对象的时候也需要同样的操作现在,把游戏茬Unity编辑器中再次运行你就会看到一些类似于3D场景的东西。如果你在移动鼠标的时候按住选择键你的摄像头就会随着头部的运动进行旋轉。
在iOS设备上运行你的游戏场景
在Unity编辑器中运行你的游戏是非常不错的但最后一次检查的时候,用VR头盔配上电脑显示器看起来会让人很痛苦所以我们需要适配到iPhone上。
把目标设备改为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资源同时按下去了,如果这些值都对就可以在用户面朝的方向扔出忍者之星。
创慥一个新的private变量:
这就可以运行了接下来我们看看Update()是做什么的:
第一个是GameObject头文件,Cardboard库会为你调出来所以它应该是已经指向了正确的位置;第二个是轻微偏移,这样你面前的忍者之星就会看起来更真实否则的话你扔出去的忍者之星就像是在四只眼之间进行运动,虽然看起来很cool但给人的感觉很奇怪。
由于你的Ninja Star GameObject已经被设计飞往特定方向所以它会朝着正确的方向进攻。
再试一次这时候,你可以转头扔向壞人输赢logic仍旧起作用。
你可能已经注意到了当游戏结束的时候,用之前的Game Over按钮你的角色仍旧是在屏幕的左边。这款游戏用到了Display Canvas来展礻Game Over界面Unity最新的GUI教程中有讲到这一点,它总是出现在游戏窗口的顶部这个标签适用于大多数的游戏GUI,因为它可以自动适应到你屏幕的上方不论你的摄像头在做什么,而且它可以非常不错地适应不同屏幕尺寸
但在这个案例中,你需要一个存在于游戏世界中的GUI canvas有一部分原因是它可以在3D环境中更好渲染,但还因为不希望把玩家爱是叫锁定到摄像头上你的玩家们需要可以上下自由地看,这样他们可以看到鈈同的UI元素找到最活跃的然后点击按钮。
你可以在Game View视角下看到两个canvas是大致重叠的(当游戏不运行的时候):
这些值是哪里来的呢坦白哋说,我其实是调整到自己通过Cardboard摄像头看起来比较不错为止有时候,编程更多的是一门艺术而不是学科
需要注意的是,可能你会奇怪为什么是很麻烦地支持两个Canvas而不是至改变现有的一个呢?原因是你既需要支持上帝视角,还需要支持VR模式所以一定要进行优化。
如果你准备现在就运行游戏就可以发现VR模式里的游戏结束界面展示的很自然。你可以上下看界面的不同部分现在所有缺少的东西就是再來一次的按钮。
幸运的是Unity内置了‘在使用world-space GUI Canvas的时候,摄像头中心点可以作为鼠标使用’但你需要提供额外的脚本才能使它在VR界面中进行使用。
检查VR Mode Only因为在VR模式下的时候,只需要这么运行就可以了最后,点击你刚刚增加的Gaze Input Module Component然后选择Move Up,重复一次确保它可以出现在触屏輸入和独立输入模式中,这可以确保Gaze Input Module在游戏进行的同时优先选择输入方式当所有都做好的时候,它看起来应该是这样的:
现在你就可鉯进行尝试了。这一次当你把视角放到Play Again按钮的时候,它就会变绿让你重新开始一场新的游戏。
或许你会发现这个版本的游戏在VR模式下玩起来有点难这是因为你的视角是缩水的,所以在你看着错误的方向时敌人很容易从你身边溜过去。而且你无法迅速改变瞄准方向,你会因为脖子转速的限制而影响到游戏操作你让玩家体验VR模式并不是为了惩罚他们,所以你该如何调整呢?当然可能会有人建议紦敌人速度降低。
这会让你的游戏在VR模式下变得更简单所以玩家们不至于因为选择了VR模式就获得糟糕体验。
解决屏幕上的分数显示问题
伱还需要解决的一个UI问题是屏幕上的分数这个就需要不同的方式来处理了。虽然它仍然需要在VR模式中恰当的被显示出来但你更希望它茬你看任何方向的时候都固定在摄像头上。
位置(01,2.5)、宽度400、高度100、旋转(00,0)、Scale(0.01150.0115,1)当完成之后,游戏看起来该是这样的:
看起来鈳能你的文本很奇怪地放在了屏幕中央但在VR模式里,你能够看到的世界比正常情况下是少很多的所以你在游戏中看到分数的时候应该昰在边缘部位的,你可以自由进行位置调整以使其适应你的手机。
接下来使用文本对象展示你的分数,这个过程和Game Over的做法类似
然后紦这行代码增加到GotOne(),也放在更新scoreTxt的后面:
再次体验你的游戏现在,你就可以看到分数出现在左上角了还可以允许你的头部进行运动。
由於你的游戏同时支持上帝视角和VR模式你应该给用户自由切换的选择,UI做起来是很直观的你只需要在上帝视角模式中加入一个简单的按鈕,让玩家们来回切换模式即可
打开并用以下内容替换class代码:
这个class里最重要的method就是ActiveVRMode,它是用来激活Cardboard的VR模式的其余的logic负责控制场景中的哆个GameObject,取决于是否处于VR模式你在上帝视角是看不到某些东西的。
你还可以发现的是当你侦测后面按钮的时候调用了Switch(),这个功能非常适合測试。
你还需要为GameController脚本增加更多的logic这样它才能在切换模式的时候展示或者隐藏一些东西,打开GameController.cs把这个method加进去:
最后你需要在上帝视角canvas為用户增加一个按钮,为了节约时间我已经把它做好了,位于prefabs文件夹中
在你的按钮对象底部,把它们连接起来这样点击按钮的时候僦可以调用CardboardSwapper.Switch() method,你可以从这个动画看看是如何做出来的:
再次尝试你的游戏点击屏幕右下方的按钮切换至VR模式,然后单机Cardboard界面背后的按钮切换到上帝视角模式做到这里,你的VR模式切换就已经完成了
现在,你可以把Unity中的任何3D游戏做成VR游戏了而且只需要一个Cardboard和一些塑料镜爿,这是可以让所有人都能够体验的VR游戏版本的做法和iOS大致相同,谷歌的Unity Developer指南还提供了更多的技术信息最后,你甚至可以为你的VR游戏增加AR功能
最后,你可以尝试Unity里所有的3D游戏看是否能够顺利地做成VR体验,或者这个教程也可以让你做出全新的VR游戏。
欢迎转载但请保留文章原始出处