private void OnTriggerEnter(Collider col) { DestructibleObstacle destructibleObs = col.GetComponent <DestructibleObstacle>(); if (destructibleObs) { if (destructibleObs.obstacleTag == this.infoData.destructibleObjName) { col.gameObject.SetActive(false); } this.gameObject.SetActive(false); } }
void shoot() { amountOfBullets--; RaycastHit hit; if (Physics.Raycast(fpsCam.transform.position, fpsCam.transform.forward, out hit, range)) { Target target = hit.transform.GetComponentInParent <Target>(); if (target != null) { target.takeAShot(); Hit hitfeedBack = new Hit(); switch (hit.transform.name) { case "InnerCircle": hitfeedBack.score = 100 * target.multiplier; hitfeedBack.feedback = HitFeedback.Perfect; hitfeedBack.text = "Perfect "; if (hitfeedBack.score > 0) { hitfeedBack.text += "+"; } hitfeedBack.text += hitfeedBack.score; hitfeedBack.color = Color.yellow; break; case "FirstCircle": hitfeedBack.score = 80 * target.multiplier; hitfeedBack.feedback = HitFeedback.VeryGood; hitfeedBack.text = "Very Good "; if (hitfeedBack.score > 0) { hitfeedBack.text += "+"; } hitfeedBack.text += hitfeedBack.score; hitfeedBack.color = Color.magenta; break; case "SecondCircle": hitfeedBack.score = 60 * target.multiplier; hitfeedBack.feedback = HitFeedback.Good; hitfeedBack.text = "Good "; if (hitfeedBack.score > 0) { hitfeedBack.text += "+"; } hitfeedBack.text += hitfeedBack.score; hitfeedBack.color = Color.red; break; case "OuterCircle": hitfeedBack.score = 40 * target.multiplier; hitfeedBack.feedback = HitFeedback.Ok; hitfeedBack.text = "Ok "; if (hitfeedBack.score > 0) { hitfeedBack.text += "+"; } hitfeedBack.text += hitfeedBack.score; hitfeedBack.color = Color.cyan; break; default: break; } shotFeedback.text = hitfeedBack.text; shotFeedback.color = hitfeedBack.color; OnTargetHit?.Invoke(hitfeedBack, hit.transform); } DestructibleObstacle destructibleObstacle = hit.transform.GetComponentInParent <DestructibleObstacle>(); if (destructibleObstacle != null) { destructibleObstacle.takeAShot(); } } }