600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > AR技术应用 の 如何做一个Pokemon GO丢出精灵球抓住皮卡丘吧!(2)

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

时间:2022-01-10 16:02:01

相关推荐

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以上):/s/1slaQ6ID

完整视频:/x/page/x0378phuf8w.html

源码下载:/download/u014528558/12552261

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。