AR技术应用 の 如何做一个Pokemon GO丢出精灵球抓住皮卡丘吧!(2)

连我自己都没猜到居然有2。。

上回讲到了如何让皮卡丘出现在"现实"中。
这次,我们要带上精灵球捕抓皮卡丘了!(啪啪啪

1.创建一个Sphere作为精灵球,然后上贴图。啊!我们是不是设置得太大了,感觉可以直接丢晕皮卡丘了2333

2.接下来我们要扔出精灵球了,其实就是简单的投篮游戏。
①先记录下精灵球的位置

void StartSet () {
    Debug.Log("设置精灵球位置");
    resetPos = ball.transform.localPosition;
}

②根据手指滑动,即点击的地方和手指离开的地方,确定一个力


void Update () {
    if(Input.GetMouseButtonDown(0))
    {
        downPosX = Input.mousePosition.x;
        downPosY = Input.mousePosition.y;
    }

    if(Input.GetMouseButtonUp(0))
    {
        upPosX = Input.mousePosition.x;
        upPosY = Input.mousePosition.y;
        ShootEnd();
    }
}

③给精灵球一个射出去的力


void ShootEnd(){
    targetcube.transform.position = new Vector3((upPosX - downPosX) * 0.1F,(upPosY - downPosY )* 0.05F,(upPosY - downPosY) * 0.1F);
    ball.GetComponent<Rigidbody>().velocity = targetcube.transform.position;
}

④如果没射中,让精灵球回到开始的位置

void ResetBall(){
        this.transform.rotation = Quaternion.Euler(Vector3.zero);
        ball.GetComponent<Rigidbody>().velocity = Vector3.zero;
        ball.GetComponent<Rigidbody>().useGravity = false;
        ball.transform.localPosition = resetPos;
    }

3.但是PokeBall要有受重的感觉,在撞到皮卡丘后,精灵在精灵球内晃动的动画。
①添加 rigibody,勾掉Use Gravity

②给PokeBall添加Animator,添加动画,其实就是是K一个简单的绕Z轴旋转的动画。

到底抓到了没

4.要使精灵球撞到了皮卡丘
①添加碰撞体


②给PokeBall添加碰撞逻辑,隐藏皮卡丘,播放精灵球晃动动画,播放捕抓特效

void OnCollisionEnter(Collision collisionInfo)
    {
        if(collisionInfo.gameObject.name == "PikachuCosplay")
        {
            皮卡丘.SetActive(false);
            GetComponent<Animator>().enabled = true;
            特效.SetActive(true);
        }
    }

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

来抓你的皮卡丘吧!

欢迎拍砖、点赞~

试玩APK(安卓5.1以上):PokemonGO.apk_免费高速下载|百度网盘-分享无限制

完整视频:自制PokemonGo简单版_腾讯视频

源码下载:https://download.csdn.net/download/u014528558/12552261

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值