【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进行安卓开发了。无伤大雅吧,只能说,强迫症的话,确实有点难受。

【CityHunter】通过Unity3D来制作游戏中AR部分的内容的更多相关文章
- Unity制作游戏中的场景
Unity制作游戏中的场景 1.2.3 场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...
- [Unity]制作游戏中名字板的过程记录
先大概说一下需求: 1 每个模型上都要有名字板:人.怪.npc等等. 2 名字板上会显示:名字(文字).血条(图片)等 3 因为是透视相机,名字板离得太近会变得超大,且主角移动,名字板的位置相对于相机 ...
- Unity3D 2D游戏中寻径算法的一些解决思路
需求 unity3d的3d开发环境中,原生自带了Navigation的组件,可以很便捷快速的实现寻路功能.但是在原生的2d中并没有相同的功能. 现在国内很多手机游戏都有自动寻路的功能,或者游戏中存在一 ...
- Unity中制作游戏的快照游戏支持玩家拍快照
Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家“拍快照”,也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游 ...
- Unity3D RTS游戏中帧同步实现
帧同步技术是早期RTS游戏常用的一种同步技术,本篇文章要给大家介绍的是RTX游戏中帧同步实现,帧同步是一种前后端数据同步的方式,一般应用于对实时性要求很高的网络游戏,想要了解更多帧同步的知识,继续往下 ...
- 【Unity3d游戏开发】游戏中的贝塞尔曲线以及其在Unity中的实现
RT,马三最近在参与一款足球游戏的开发,其中涉及到足球的各种运动轨迹和路径,比如射门的轨迹,高吊球,香蕉球的轨迹.最早的版本中马三是使用物理引擎加力的方式实现的足球各种运动,后来的版本中使用了根据物理 ...
- 在unity3d游戏中添加中文语音控制
最近打算尝试一下OLAMI在游戏中应用的可能性,这里做一下记录. unity官方教程中的几个项目很精简,但看起来很不错,里面有全套的资源.最后我选择了tanks-tutorial来做这个实验. 下载和 ...
- Unity3D游戏开发——收集当前关卡游戏中分散的物件
运用场景 许多游戏中会有一些供玩家拾起的物件,例如装备.血包.道具等.当玩家与物件进行碰撞后,则会进入仓库. 本篇介绍了简单的碰撞过程. 原理 基本的碰撞机制,用到OnTriggerEnter()碰撞 ...
- unity3d模型制作规范
1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. 2 ...
随机推荐
- TCP三次握手建立连接
基本过程: ISN(初始序号)随时间变化,每一个连接具有不同的ISN,防止在网络延迟中分组被重新发送. 请求端发送SYN(同步序号 )=1,seq=ISN(32bits序号,每4ms+ ...
- JVM之GI收集器
Garbage-First,面向服务端的垃圾收集器. 并行与并发:充分利用多核环境减少停顿时间, 分代收集:不需要配合其它收集器 空间整合:整体上看属于标记整理算法,局部(region之间)数据复制算 ...
- 从零自学Hadoop(05):Ambari
阅读目录 序 引入背景 Ambari介绍 在线安装 系列索引 本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,Sour ...
- 使用shell定时自动备份mysql数据库
#!/bin/bash id="root" #用户名 pwd="123456" #密码 dbs="blog.ewsd.cn dangjian.ewsd ...
- js中的prototype和__proto__
var Person = function(name){ this.name = name; this.say = function(){ return "I am " + thi ...
- 不懂前端的程序员不是好美工——UI框架metronic使用教程——程序员视角
本着不懂前端的程序员不是好美工的观点,所以作为一个仅懂一点前端的程序员,为了成为一个好美工,所以只能用些取巧的方法伪装一下. metronic一个基于bootstrap的响应式的后台管理平台的UI框架 ...
- Android项目部署时,发生AndroidRuntime:android.view.InflateException: Binary XML file line #168: Error inflating class错误
这个错误也是让我纠结了一天,当时写的项目在安卓虚拟机上运行都很正常,于是当我部署到安卓手机上时,点击登陆按钮跳转到用户主界面的时候直接结束运行返回登陆界面. 当时,我仔细检查了一下自己的代码,并 ...
- Jenkins学习九:Jenkins插件之构建MSBuild
Jenkins是Java语言编写的,一直好奇是否可以构建NET语言的项目,目前只了解到有一个插件MSBuild支持构建NET项目. 一.Jenkins安装插件MSBuild 二.VS构建CsharpH ...
- 数-模(D/A)转换器
将实现数字信号到模拟信号的转换电流称为数模(D/A)转换器,简称为DAC(Digital - Analog Convert). 目前常见的D/A转化器中,有:权电阻网络D/A转换器.倒T型电阻网络D/ ...
- 发一份shiro标准配置,特此记录
主要还是整合了本地ehcache,集群session管理过段时间放出 <?xml version="1.0" encoding="UTF-8"?> ...