签到领奖

[geekli] 用 EasyAR 开发Pokemon Go

[复制链接]
查看: 4146|回复: 10
排名
66
昨日变化
发表于 2017-1-9 19:25:14 | 显示全部楼层 |阅读模式
本帖最后由 geekli 于 2017-3-20 21:32 编辑

用 EasyAR SDK 来开发好玩的AR 应用

第一部分:前言

EasyAR 开发者交流群:605785368

AR开发者社区:


在本系列教程中,我将教大家一步一步用EasyAR SDk 来实现Pokemon Go 的效果,在第一篇中,我们先用EasyAR SDK 来完成Pokemon go 的基本功能--------实现皮卡丘的显示与pokeballs 的抛掷功能。

资源:
pokeballs模型:https://pan.baidu.com/s/1gfp5rKv

皮卡丘模型:链接: https://pan.baidu.com/s/1pL4iehl 密码: 1qji

粒子特效:链接: https://pan.baidu.com/s/1hsftNRe 密码: mhr9


第二部分:预览



第三部分:开发环境搭建


关于 EasyAR 开发的基本教程我在前面已经写过很多教程了,不懂得可以看一看,到官网注册获取 Key 后,导入模型后,并把 EasyAR_Startup ,皮卡丘模型,pokeballs 都拖入面板中,效果如图


修改皮卡丘位置与旋转角度(为了获取在移动端的最好体验):

修改Pokeballs 位置(十分重要):

接下来,在皮卡丘上挂上Box Collider,并为其添加Tag。

为Pokeballs 添加rigidbody 与 Sphere Collider。

第四部分:编写脚本

为Pokeballs 编写脚本实现它抛掷效果。

[AppleScript] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;

public class ClickSound : MonoBehaviour {
        bool drawing=false;
        public ParticleSystem par;
        float distance;
        public float ThrowSpeed;
        public float ArcSpeed;
        public float Speed;

        void OnMouseDown()
        {
                distance = Vector3.Distance (transform.position,Camera.main.transform.position);
                drawing = true;
        }

         void OnMouseUp()
        {
                this.GetComponent<Rigidbody> ().useGravity = true;
                this.GetComponent<Rigidbody> ().velocity += this.transform.forward * ThrowSpeed;
                this.GetComponent<Rigidbody> ().velocity += this.transform.up * ArcSpeed;
                drawing = false;
        }
        void Update()

        {

                if (drawing) {
                
                        Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
                        Vector3 rayPoint = ray.GetPoint (distance);
                        transform.position = Vector3.Lerp (transform.position,rayPoint,Time.deltaTime*Speed);
                }

        }
}


最主要的是判断点击抬起之后,为其添加向前的推力与向上的动力,来实现其运动。接着,实时判断通过射线来插值的方式实现其运动。
接下来,添加碰撞检测,实现其捕获之后的粒子特效。

[AppleScript] 纯文本查看 复制代码
void OnCollisionStay(Collision col)
        {
                if (col.collider.tag == "Pika") {
                        ParticleSystem p= Instantiate (par,col.collider.transform.position,Quaternion.identity) as ParticleSystem;
                        p.Play ();
                        Destroy (col.collider.gameObject);

                }
        }

好了,目前我们可以实现其PokeMon Go 的基本功能,在接下来的教程中,会实现更复杂的,将导入高德或百度地图,并在 Studio进行二次开发。总之任重而道远!!!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

免费评分

参与人数 1泰斗币 +50 收起 理由
里斯 + 50 赞一个!

查看全部评分

最近访问 头像模式 列表模式
+1
1394°C
10
  • nham345
  • loverain9988
  • nham123
  • xiaozhugan
  • 马三小伙儿
过: 他们
楼主热帖
发表于 2017-1-9 23:48:31 | 显示全部楼层
hi, nice post in day
排名
547
昨日变化
1
发表于 2017-1-10 14:20:15 | 显示全部楼层
你们大神真会玩。
[发帖际遇]: loverain9988 乐于助人,奖励 4 泰斗币. 幸运榜 / 衰神榜
发表于 2017-1-11 17:28:46 | 显示全部楼层
165654 lojhkln khlknlk kojl;nlk;n;l oijhoihnolno
排名
1517
昨日变化
2
发表于 2017-1-12 15:34:58 | 显示全部楼层
不管你信不信,反正我是信了。
2武林新丁
194/200
排名
241
昨日变化
发表于 2017-1-13 10:39:20 | 显示全部楼层
非常不错,收藏了
3江湖小虾
339/500
排名
119
昨日变化
2
发表于 2017-2-18 10:52:42 | 显示全部楼层
果断MARK,前十有我必火!
排名
2505
昨日变化
2
发表于 2017-2-19 21:35:14 | 显示全部楼层
不管你信不信,反正我是信了。
排名
2505
昨日变化
2
发表于 2017-3-6 23:45:29 | 显示全部楼层
学习学习
回复

使用道具 举报

5武林高手
1065/2000
排名
14
昨日变化
发表于 2017-3-7 12:58:48 | 显示全部楼层
哥顶的不是帖子,是寂寞!
排名
1157
昨日变化
7
发表于 2017-3-24 11:19:04 | 显示全部楼层
好好爱护哦啊好哦啊好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

在线客服(工作时间:9:00-22:00)
010-82609395
泰斗社区公众号

Copyright   ©2015-2016  【泰斗社区】-专注互联网游戏和应用的开发者平台  Powered by©Discuz!  技术支持:迪恩网络     ( 沪ICP备14023207号-9 )