void OnTriggerEnter2D(Collider2D collider) { if (collider == null) { return; } if (collider.tag != "Bullets" && collider.tag != "Player") { return; } if (collider.tag == "Bullets") { // 如果子彈的主人掛了,這顆子彈沒有用處 if (!collider.GetComponent <bulletControl>().getMaster()) { return; } // 如果子彈的主人跟我同陣營,這顆子彈不對我有用 if (collider.GetComponent <bulletControl>().getMaster().tag == gameObject.tag) { return; } } if (collider.tag == "Bullets") { hp--; healthBarCtrl.GetComponent <healthBarCtrl>().changeHealBar(max_hp, newHp: hp); Destroy(collider.gameObject); // 刪掉子彈 if (hp > 0) { return; } // 怪物死亡,加分數 socreBoardControl.Instance.AddScore(); // 打死 Boss if (gameObject.name.Contains("mob_boss")) { gamePlayMng.BossFlag = false; int now = (int)(System.DateTime.Now.AddHours(-8) - new System.DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds; gamePlayMng.BossDeadAwakeTime = now + (int)conf["boss_create_freq"]; gamePlayMng.addStage(); } } Vector3 pos = gameObject.transform.position; mobExplClone = Instantiate(explode, gameObject.transform.position, gameObject.transform.rotation); //在外星人的位置產生爆炸 Destroy(gameObject); }