首页 > 其他分享 >unity+高德定位=pokemon go 山寨demo安卓版

unity+高德定位=pokemon go 山寨demo安卓版

时间:2023-01-04 13:34:02浏览次数:68  
标签:位置 iTween demo 宠物 unity 安卓版 position pokemon 高德


这两周尝试了下用高德地理定位和Unity来做个山寨的pokemon go的demo,只能在安卓下使用。


游戏过程视频:

​http://www.bilibili.com/video/av6836823/​




场景一



unity+高德定位=pokemon go 山寨demo安卓版_pokemon go



unity+高德定位=pokemon go 山寨demo安卓版_pokemon go_02

这里是获取当前位置和设置宠物位置的页面。

这里用了自己做的高德地理定位,

unity+高德定位=pokemon go 山寨demo安卓版_unity_03

这里设置为单次定位。可以设置宠物距离当前位置多远以及感应半径。

感应半径建议不小于40米。

设置的信息保持在PokemonInfo里。

unity+高德定位=pokemon go 山寨demo安卓版_高德_04


场景二(真实地图)



unity+高德定位=pokemon go 山寨demo安卓版_unity_05



由于高德安卓sdk地图显示我没办法调取,于是用了高德的web api实现。

这是个偷懒的解决办法,如果走远了,就会没地图了。

点击开始以后,会访问高德web api获取一张以当前位置为中心的地图的静态图片

unity+高德定位=pokemon go 山寨demo安卓版_pokemon go_06

这个图片有700k左右,网络不好会断,所以加了刷新地图的按钮。

 在网上找了段计算两经纬度直接距离的函数,以此,计算出宠物和当前位置的差值并显示。有误差,但还能接受。

计算函数来源



地图显示两种方式,一种的北上南下的方式。

unity+高德定位=pokemon go 山寨demo安卓版_.net_07


一种是当手机水平的时候,地图的北基本会指向现实的北方,会有一定的抖动和偏移。这个功能是用GyroDroid插件做的。

unity+高德定位=pokemon go 山寨demo安卓版_unity_08

unity+高德定位=pokemon go 山寨demo安卓版_unity_09


当手机当前位置距离宠物在感应距离以内,会有按钮出现并有声音提示。

这个功能本来是打算用高德的地理围栏来实现,这样运算量在高德服务器那,当有多个的时候比较容易实现。

但是,没本事,只好自己计算。(高手一定要教我怎么在unity里调用安卓的通知啥的啊,跪求)

这里定位时间设置的是5秒。


场景三



unity+高德定位=pokemon go 山寨demo安卓版_unity_10



这里用了vuforia的插件来显示摄像头内容。虽然自己能写,但是效果不好。总之随便拿个AR SDK里的摄像头来用就好。

unity+高德定位=pokemon go 山寨demo安卓版_android_11

宠物的位置是以进入场景时候,手机当前位置和宠物位置来设置的。


为了实现手机转动看到不同方向,又用到了GyroDroid插件。

unity+高德定位=pokemon go 山寨demo安卓版_.net_12


模型是unity商城里的,小球的轨迹用itween插件实现。点击以后会砸倒宠物。

public void ThrowBall(){
GameObject ball = Instantiate (ballPerfab);
ball.transform.position = new Vector3 (2, -2f, 0);

iTween.MoveTo (ball, iTween.Hash (
"position",new Vector3(pokemon.transform.position.x,pokemon.position.y+1f,pokemon.transform.position.z),
"time",1f,
"easetype",iTween.EaseType.linear
));

iTween.MoveTo (ball.transform.FindChild ("Sphere").gameObject, iTween.Hash (
"y",2,
"time",0.53f,
"islocal",true,
"easetype",iTween.EaseType.easeInOutSine,
"looptype",iTween.LoopType.pingPong
));
}









标签:位置,iTween,demo,宠物,unity,安卓版,position,pokemon,高德
From: https://blog.51cto.com/u_15929643/5988323

相关文章

  • 《Unity3D平台AR开发快速上手--基于EasyAR4.0》随书资源和相关说明
    新手《Unity3D平台AR开发快速上手–基于EasyAR4.0》上市了,现在京东和淘宝都有卖。书分为2个部分,第一部分是EasyAR4.0基础内容和使用,第二部分是利用EasyAR的稀疏空间地图做室......
  • 《Unity 2D与3D手机游戏开发实战》上架了。
    新书上架了。这本书主要是Unity开发的入门,附带了一个简单的2D例子,一个3DRPG的简单例子和一个尽可能用插件实现的射击游戏的例子。书很薄,不过因为是彩页印刷,价钱不是那么实......
  • 《Unity2018AR与VR开发快速上手》随书内容资源相关说明
    我的第二本书,《Unity2018AR与VR开发快速上手》终于上市了,现在天猫和京东都有卖。随书资源的百度盘链接被关闭了,只给了个“此链接分享内容可能因为涉及侵权、色情、反动、低......
  • 森哥的代码Demo的总结
    permute()函数:permute()函数其实是对矩阵的块行列进行交换LSTM模型后增加DENSE(全连接)层的目的是什么?LSTM主要用于处理变长序列,就是说输入的长度是可变的。而全连接层......
  • PropertiesDemo
     importorg.apache.commons.configuration.ConfigurationException;importorg.apache.commons.configuration.PropertiesConfiguration;importjava.io.File;importjava......
  • Expression及Equal Demo
    代码参考1:usingSystem;usingSystem.Linq.Expressions;namespaceExpressionDemo{classPeople{publicintId{set;get;}public......
  • unity绕过易赛通加密处理
    代码在这里参考这里的文章:https://www.grablan.com/news/2017/20110.html抽取一下重点:易赛通使用驱动对关键API进行Hook的方式实现了文件的加解密功能,加解密过程对应......
  • vue vuex 学习小demo
    创建store.js 引入并使用vueximport Vuex from 'vuex'Vue.use(Vuex)1.使用new Vuex.Store创建({})创建store2.创建state:{}存放数据3.mutations:{}存放方法4.actions:{}......
  • Unity使用Get和Post传递json数据并转换成class对象
    此文写的并不是使用UnityRequest等等Unity自带的方法。1、Get方法publicstaticasyncTask<string>DoGet(stringrequestUrl,stringparms){......
  • Electron入门Demo之桌面应用计算器笔记(二)
    码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14307996.html 目录码文不易啊,转载请带上本文链接呀,感谢感谢https://www.cnblogs.co......