教你如何做一個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以上):http://pan.baidu.com/s/1slaQ6ID

---------2016/8/27-------------
優化更新一下APP:http://pan.baidu.com/s/1pLrPFGB

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容