美文网首页AR开发Unity教程合集程序员
教你如何做一个Pokemon GO(1)- 这只皮卡丘是你的吗?

教你如何做一个Pokemon GO(1)- 这只皮卡丘是你的吗?

作者: PA_ | 来源:发表于2016-08-19 16:39 被阅读1115次

火红火热的Pokemon GO在中国被锁啦!

只好自己动手做一个吧:)

思路:当镜头在向着地面的时候,开始寻找皮卡丘,一定时间之后皮卡丘根据角度出现在镜头里。

使用引擎:Unity3D 语言:c# AR-SDK:vuforia

1.首先打开unity创建一个AR项目,使用的AR引擎是Vuforia。
官网使用教程:https://developer.vuforia.com/support
中文教程:http://www.manew.com/thread-92723-1-1.html?_dsign=51711fb9

2.导入vuforia包,把预设里的ARCamera拉入场景中,把皮卡丘模型放在ARCamera下的Camera下面,以此跟踪摄像头。


Paste_Image.png

3.为了使皮卡丘真实的出现在“现实”中,我们要先确保其出现在地面,例如桌面、地上,而不是天花板。。所以我们用到手机陀螺仪功能,判断角度是否向下。

①设置镜头跟随螺旋仪旋转


设置镜头跟随设备陀螺仪

②在Update判断ARCamera是否向下,即三维世界的0~60度内

void Update () {
    if(camRotation.transform.eulerAngles.x > 0 && camRotation.transform.eulerAngles.x < 60)
    {
        Debug.Log("角度正确");
    }
    if(camRotation.transform.eulerAngles.x < 0 || camRotation.transform.eulerAngles.x > 60)
    {
        Debug.Log("角度不对");
    }
}

4.然后要先隐藏皮卡丘,当其出现的时候,不是直接跟随镜头,而是让手机在旋转的同时皮卡丘会被移出镜头范围内。
①在皮卡丘出现的时候,使其脱离ARCamera,并显示出来。
②当摄像头向下的时候,旋转皮卡丘一定角度,使其有看着玩家的感觉。

    public GameObject camRotation;//ARCamera摄像头角度

    void 发现皮卡丘(){
         gameObject.transform.parent = null;
         gameObject.SetActive(true);
         gameObject.transform.Rotate(new Vector3(camRotation.transform.eulerAngles.x + this.transform.eulerAngles.x ,this.transform.eulerAngles.y,this.transform.eulerAngles.z));
    }

放上APK试玩:http://pan.baidu.com/s/1o84cEdO

------------End-----------

相关文章

网友评论

  • Alex_Gau:楼主,能分享一下demo吗,最近刚刚学习AR的内容
  • 就叫便利贴好了:问一下 皮卡丘过一段时间会自己做动作是怎么实现的😁
    PA_:@就叫便利贴好了 模型预先制作好动画,然后放进unity,添加Animator组件即可。
  • 衡星:可以提供一下demo?
  • 静默_静默:很👍的样子
  • echohexi:我承认皮卡丘很萌,可其它语言太浪漫,我看不懂😂

本文标题:教你如何做一个Pokemon GO(1)- 这只皮卡丘是你的吗?

本文链接:https://www.haomeiwen.com/subject/zyubsttx.html