Exemplo n.º 1
0
    private void OnElementMatchConditions(ElementsProperties elem)
    {
        SpawnFluid(elem);
        gameObject.GetComponent <CameraShake>().StartShakeExplosion();
        smash.Play();

        gameManagement.AddScore();
        combo++;

        GameObject ptcScore100Instance;

        ptcScore100Instance = Instantiate(ptcScore100Prefab, elem.gameObject.transform.position, Quaternion.Euler(elem.gameObject.transform.up));
        Destroy(ptcScore100Instance, 5f);

        if (elem.gameObject.transform.localScale.x > 1.1f)
        {
            print("BONUS");
            gameManagement.AddScore();
            combo++;

            GameObject ptcScore100Instance2;
            ptcScore100Instance2 = Instantiate(ptcScore100Prefab, elem.gameObject.transform.position, Quaternion.Euler(elem.gameObject.transform.up));
            Destroy(ptcScore100Instance2, 5f);
        }

        if (combo >= 4)
        {
            gameManagement.StartHighFeedbackScore();
            gameManagement.Pactole();
            combo = 0;
            good4.Play();

            GameObject ptcScore400Instance;
            ptcScore400Instance = Instantiate(ptcScore400Prefab, elem.gameObject.transform.position, Quaternion.Euler(elem.gameObject.transform.up));
            Destroy(ptcScore400Instance, 5f);
        }
        else
        {
            gameManagement.StartLowFeedbackScore();
            if (combo == 3)
            {
                good3.Play();
            }
            else if (combo == 2)
            {
                good2.Play();
            }
            else if (combo == 1)
            {
                good1.Play();
            }
        }

        Destroy(elem.gameObject);
        gameManagement.OnElementDestroyed();
    }
Exemplo n.º 2
0
    void Update()
    {
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (enableFlag && Physics.Raycast(ray, out raycastHit))
        {
            m_trans.LookAt(raycastHit.point);
            //枪口到点
            Debug.DrawLine(m_Point.position, raycastHit.point, Color.red);
            //看的见的射线
            lineRenderer.SetPosition(0, m_Point.position);
            lineRenderer.SetPosition(1, raycastHit.point);

            //飞盘射击
            if (raycastHit.collider.tag == "FlyDisk" && Input.GetMouseButtonDown(0))
            {
                audioSource.Play();
                //通过碰撞到的子物体找打父物体
                Transform parent = raycastHit.collider.gameObject.GetComponent <Transform>().parent;
                //通过父物体查找到所有的18个子物体的transform组件
                Transform[] patials = parent.GetComponentsInChildren <Transform>();
                //给每一个碎片添加rigidbody组建,模拟破碎下落效果
                foreach (Transform item in patials)
                {
                    item.gameObject.AddComponent <Rigidbody>();
                }
                gameManagement.AddScore();
                //打完后需要销毁该物体
                GameObject.Destroy(parent.gameObject, 2.0f);
            }
        }
    }
Exemplo n.º 3
0
    // Enemyにぶつかるとあたり判定
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.CompareTag("Player") == true)
        {
            // Playerと当たった時にもExplosionFXが生成されるように設定
            Instantiate(explosionFX, collision.transform.position, transform.rotation);
            FindObjectOfType <GameManagement>().GameOver();
        } // Enemyがmissileにぶつかった時のみAddscoreされる
        else if (collision.CompareTag("Missile") == true)
        {
            gameManagement.AddScore();
        }

        // Enemyにミサイルが当たるとデストロイ
        Destroy(gameObject);

        // Enemyにあったオブジェクトもデストロイ
        Destroy(collision.gameObject);

        // Enemyにオブジェクトがあたったら、ExplosionFXが生成
        Instantiate(explosionFX, transform.position, transform.rotation);
    }