public void Awake() { if (onTargetHit == null) { onTargetHit = new OnTargetHit(); } if (onTargetShoot == null) { onTargetShoot = new OnTargetShoot(); } if (onTargetDestroy == null) { onTargetDestroy = new OnTargetDestroy(); } }
public void CallOnTargetHit(EventData ob = null) => OnTargetHit?.Invoke(ob);
public void TargetHit() { OnTargetHit.Invoke(score); }
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(); } } }
private void OnTargetHit(OnTargetHit obj) { CheckQuests(obj); }
private void HitTarget() { Invoke(nameof(Disable), 2f); OnTargetHit?.Invoke(target); target = null; }