一款忍者几年前一个单机忍者游戏手游,不知道是什么名字?


随着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游戏Android版本的做法和iOS大致相同,谷謌的Unity Developer指南还提供了更多的技术信息最后,你甚至可以为你的VR游戏增加AR功能
最后,你可以尝试Unity里所有的3D游戏看是否能够顺利地做成VR体驗,或者这个教程也可以让你做出全新的VR游戏。

你好你说的游戏去火影战绩,伱想玩就去应用宝下载吧

那是专门为安卓手机设计的游戏下载平台不管你需要什么

类型的游戏和版本那里都能找到,下载起来游戏安全方便没有

附加软件和病毒,希望我的回答帮助到你

我要回帖

更多关于 几年前一个单机忍者游戏 的文章

 

随机推荐