Esempio n. 1
0
    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);
        }
    }
Esempio n. 2
0
    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();
            }
        }
    }