嗯,最近再考虑,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部分的内容的更多相关文章

  1. Unity制作游戏中的场景

    Unity制作游戏中的场景 1.2.3  场景 在Unity中,场景(Scene)就是游戏开发者制作游戏时,所使用的游戏场景.它是一个三维空间,对应的三维坐标轴分别是X轴.Y轴和Z轴本文选自Unity ...

  2. [Unity]制作游戏中名字板的过程记录

    先大概说一下需求: 1 每个模型上都要有名字板:人.怪.npc等等. 2 名字板上会显示:名字(文字).血条(图片)等 3 因为是透视相机,名字板离得太近会变得超大,且主角移动,名字板的位置相对于相机 ...

  3. Unity3D 2D游戏中寻径算法的一些解决思路

    需求 unity3d的3d开发环境中,原生自带了Navigation的组件,可以很便捷快速的实现寻路功能.但是在原生的2d中并没有相同的功能. 现在国内很多手机游戏都有自动寻路的功能,或者游戏中存在一 ...

  4. Unity中制作游戏的快照游戏支持玩家拍快照

    Unity中制作游戏的快照游戏支持玩家拍快照 有些游戏支持玩家“拍快照”,也就是将游戏的精彩瞬间以图片的形式记录下来的功能.这个功能比较有趣,而且以后的用途也会很广,为此本节打算介绍:截取矩形区域内游 ...

  5. Unity3D RTS游戏中帧同步实现

    帧同步技术是早期RTS游戏常用的一种同步技术,本篇文章要给大家介绍的是RTX游戏中帧同步实现,帧同步是一种前后端数据同步的方式,一般应用于对实时性要求很高的网络游戏,想要了解更多帧同步的知识,继续往下 ...

  6. 【Unity3d游戏开发】游戏中的贝塞尔曲线以及其在Unity中的实现

    RT,马三最近在参与一款足球游戏的开发,其中涉及到足球的各种运动轨迹和路径,比如射门的轨迹,高吊球,香蕉球的轨迹.最早的版本中马三是使用物理引擎加力的方式实现的足球各种运动,后来的版本中使用了根据物理 ...

  7. 在unity3d游戏中添加中文语音控制

    最近打算尝试一下OLAMI在游戏中应用的可能性,这里做一下记录. unity官方教程中的几个项目很精简,但看起来很不错,里面有全套的资源.最后我选择了tanks-tutorial来做这个实验. 下载和 ...

  8. Unity3D游戏开发——收集当前关卡游戏中分散的物件

    运用场景 许多游戏中会有一些供玩家拾起的物件,例如装备.血包.道具等.当玩家与物件进行碰撞后,则会进入仓库. 本篇介绍了简单的碰撞过程. 原理 基本的碰撞机制,用到OnTriggerEnter()碰撞 ...

  9. unity3d模型制作规范

    1. 单位,比例统一 在建模型前先设置好单位,在同一场景中会用到的模型的单位设置必须一样,模型与模型之间的比例要正确,和程序的导入单位一致,即便到程序需要缩放也可以统一调整缩放比例.统一单位为米. 2 ...

随机推荐

  1. goldengate abended with no data found

    先来看下报错ggserr.log: 2016-12-22 04:48:52  WARNING OGG-02544  Unhandled error (ORA-26787: The row with k ...

  2. 【转】hive优化之--控制hive任务中的map数和reduce数

    一.    控制hive任务中的map数:  1.    通常情况下,作业会通过input的目录产生一个或者多个map任务. 主要的决定因素有: input的文件总个数,input的文件大小,集群设置 ...

  3. Centos6下安装Hadoop2.6 问题总结

    一. 安装背景:VirtualBox下安装三台Centos6.8虚拟机(一主:master, 两从:slave1,slave2) Centos版本:CentOS-6.8-x86_64 网络配置:三台虚 ...

  4. [WPF系列]-使用Binding来同步不同控件的Dependency property

    简介 项目中经常会用到,同步两个控件的值,本文就简单列举两种方式来同步不同控件的两个Dependency Property. 示例 效果图: 只使用C#代码: //获取slider1的ValueDep ...

  5. BI商务智能对于企业的意义

    BI商务智能之所以越来越重要,是因为无知是现代企业的最大威胁.不知不觉的风险是巨大的,而一知半解可能比一无所知危害更大,因为我们会带着错误的念头做出决定和采取行动,同时还自鸣得意地认为自己是真理的化身 ...

  6. 【转载】Web移动端Fixed布局的解决方案

    特别声明:本文转载于EFE的<Web移动端Fixed布局的解决方案>.如需转载,烦请注明原文出处:http://efe.baidu.com/blog/mobile-fixed-layout ...

  7. faster_rcnn c++版本的 caffe 封装(1)

    转载请注明出处,楼燚(yì)航的blog,http://www.cnblogs.com/louyihang-loves-baiyan/ 由于需要把FasterRCNN做的工程化,因此这里需要对Caff ...

  8. MBTI-性格测试

  9. CODEVS3037 线段覆盖 5[序列DP 二分]

    3037 线段覆盖 5   时间限制: 3 s   空间限制: 256000 KB   题目等级 : 钻石 Diamond 题解       题目描述 Description 数轴上有n条线段,线段的 ...

  10. 微信小程序购物商城系统开发系列-工具篇

    微信小程序开放公测以来,一夜之间在各种技术社区中就火起来啦.对于它 估计大家都不陌生了,对于它未来的价值就不再赘述,简单一句话:可以把小程序简单理解为一个新的操作系统.新的生态,未来大部分应用场景都将 ...