连我自己都没猜到居然有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以上):http://pan.baidu.com/s/1slaQ6ID
有疑问加站长微信联系(非本文作者)