Beispiel #1
0
    void FixedUpdate()
    {
        if (GameManager.Instance.isGamePaused == false)
        {
            if (!reflectorHit)
            {
                RaycastHit2D hit = Physics2D.Raycast(transform.position, directionVector, (directionVector.normalized * projectileSpeed * Time.fixedDeltaTime).magnitude, ~layerMaskStruct);
                if (hit)
                {
                    ILaserInteractable laserInteractable = hit.transform.GetComponentInParent <ILaserInteractable>();

                    if (laserInteractable != null)
                    {
                        reflectorHit = true;
                        ReduceSpeed();
                        laserInteractable.OnLaserOverlap(this, hit);
                        return;
                    }

                    // #region HIT: End Point
                    // case "EndPoint":
                    //     hitStore.collider.gameObject.GetComponent<EndPoint>().checkIfCorrectLaserHit(gameObject);
                    //     projectileSpeed = 0.0f;
                    //     destroyCheck = true;

                    //     //Destroy(gameObject, 0.1f);

                    //     LaserPooler.instance_LaserPoolList.laserPoolDictionary["LaserStock"].Enqueue(this.gameObject);
                    //     gameObject.transform.position = GameObject.FindGameObjectWithTag("InactivePooledLasers").transform.position;
                    //     gameObject.transform.rotation = Quaternion.identity;
                    //     gameObject.SetActive(false);
                    //     projectileSpeed = 7.0f;
                    //     break;
                    // #endregion

                    // #region HIT: Teleporters

                    // case "TeleporterSetA":
                    // case "TeleporterSetB":
                    // case "TeleporterSetC":
                    //     Debug.Log("HIT TELEPORTER SET");
                    //     hitStore.collider.gameObject.GetComponentInParent<Teleporter>().teleportLaser(gameObject, hitStore.collider.gameObject);
                    //     break;

                    // #endregion

                    // #region HIT: Colored Border
                    //     case "ColoredBorder":
                    //         hitStore.collider.gameObject.GetComponent<ColoredBorder>().checkIfCorrectLaserHit(gameObject);
                    //         break;

                    //         #endregion
                    // }
                }
            }

            transform.position += transform.right * projectileSpeed * Time.fixedDeltaTime;
        }
    }