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(); }
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); } } }
// 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); }