【CityHunter】通过Unity3D来制作游戏中AR部分的内容
嗯,最近再考虑,CityHunter中,玩家攻略藏宝图时,为了增加可玩性,应该增强在AR部分的游戏性。最近特别火的游戏《Pokemon Go》在打开摄像头以后,可以看到小精灵,实际上,如果这款游戏没有这个功能,那整个游戏还真没有什么游戏的感觉(就是动画、图像之类的元素特别少)。本人比较懒,没有去弄这款游戏,于是跟远在澳大利亚的高中老兄弟咨询了一下这款游戏的情况。
事实上,《Pokemon Go》的AR元素,实现还是比较简单的。可以理解为,只不过是单纯的打开了摄像头,把背景替换了一下,以前好像是微信还是微信的一个插件,也有这样的功能,打开摄像头,将聊天的背景替换成实景,这么做是为了防止用户顾着聊天不看路= =。。。Pokemon出现的精灵,实际上只是一个2.5D的图片,不是真正的3D建模,如果你开着摄像头围着它绕一圈,是看不到小精灵的背面,不管你怎么转,你能看到的,只不过是一张正面图,当然它可能是带有动画效果,但绝对不是3D的。
我对CityHunter的在AR攻略宝图时,希望能够得到这样的一个效果:
举一个栗子,以“反重力场”这个陷阱来说,我希望进入反重力场的玩家,当打开摄像头的时候,必须看到周围(屏幕内)有浮起来的碎石,这个场景类似于《七龙珠》中的超级赛亚人觉醒时,常有的画面。而且用户改变镜头方向,或原地360°转圈,可以看到的不是固定的画面,而是会随着围绕的碎石场景,让一切更加真实。
[暂时找不到更好的,反正就这意思]
其实要实现起来,倒也不会很困难。但是这也意味着,不能再简单地在Android Studio里制作了,当然可能有大神一样做得到吧。要处理这样的需求,最简单直观的办法,我想应该是引入Unity3D,思路大概如此:
首先根据不同的陷阱,制作相应的场景,因为每一种陷阱,都是有对应的有效范围,所以场景也不需要做成无限大的,只需要根据陷阱的作用范围来设计3D场景的大小,然后将主摄像机的Transform属性中的各个值,与手机的加速传感器、陀螺仪进行绑定。从而实现手机带着镜头转,第一人称的感觉(体感操作,抛弃鼠标也可以很6的进行第一人称游戏),场景内的所有碎石,使用3D模型,并且这种物体重复性大,只需要用PreFab[预设]去复制,性能也不会有太大的影响。
只要用户进入陷阱的有效范围,我们可以根据GPS定位及地图传来的数据,判断玩家是从场景的哪个位置进入到陷阱中,这样就可以实时更新玩家在场景中的位置,而更改周围碎石的透视效果(近大远小)。当玩家离开陷阱有效范围时,销毁这个场景中的特效。
另外说一个事情:
很多Unity的教程,都说Android的项目不能导出源码,不方便进行二次开发,其实不是这样的(至少当下版本已经不是这样了,而且这一点误导了我很久,让我浪费了很多时间。所以大家看教程的时候,要注意那些博文发表的时间,和软件的版本),我用的是Unity5.3.5,在导出Android项目的时候,一样可以选择导出成Google Project,导出来的项目就是一个很普通的Android项目,但是目录结构是以ADT,就是Eclipse的,不是Android Studio的,这有点蛋疼,因为毕竟现在已经提倡使用Android Studio进行安卓开发了。无伤大雅吧,只能说,强迫症的话,确实有点难受。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?