// Update is called once per frame
    public override void  FixedUpdate()
    {
        if (transform.position.y > startPos.y && currentBehaviour == laserEnum.Up)
        {
            lastBehaviour    = currentBehaviour;
            currentBehaviour = laserEnum.Idle;
        }

        if (currentBehaviour == laserEnum.Down)
        {
            transform.position += Vector3.down * speed;
        }
        else if (currentBehaviour == laserEnum.Up)
        {
            transform.position += Vector3.up * speed;
        }
        else if (currentBehaviour == laserEnum.Idle)
        {
            timer += Time.deltaTime;

            if (timer > waitTime)
            {
                ChangeBehaviour();
                timer = 0;
            }
        }

        base.FixedUpdate();
    }
 private void ChangeBehaviour()
 {
     if (lastBehaviour == laserEnum.Up)
     {
         currentBehaviour = laserEnum.Down;
     }
     else if (lastBehaviour == laserEnum.Down)
     {
         currentBehaviour = laserEnum.Up;
     }
 }
Esempio n. 3
0
    private void ChangeBehaviour()
    {
        if (lastBehaviour == laserEnum.Up)
        {
            currentBehaviour = laserEnum.Down;
        }
        else if (lastBehaviour == laserEnum.Down)
        {
            currentBehaviour = laserEnum.Up;
        }

        lastRotation = Mathf.Floor(transform.eulerAngles.z);
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        if (collision.gameObject.layer == 9 && transform.position.y < collision.transform.position.y)
        {
            if (isChangingColor)
            {
                ChangeColor();
            }

            lastBehaviour    = currentBehaviour;
            currentBehaviour = laserEnum.Idle;
        }
    }
Esempio n. 5
0
    // Update is called once per frame
    void FixedUpdate()
    {
        if ((currentBehaviour == laserEnum.Down && transform.position.y <= lowPos.y) ||
            currentBehaviour == laserEnum.Up && transform.position.y >= highPos.y)
        {
            if (isChangingColor)
            {
                foreach (Transform child in transform)
                {
                    child.GetComponent <Laser>().ChangeColor();
                }
            }

            lastBehaviour    = currentBehaviour;
            currentBehaviour = laserEnum.Idle;
        }
        else if (currentBehaviour == laserEnum.Down)
        {
            transform.position += Vector3.down * speed;
        }
        else if (currentBehaviour == laserEnum.Up)
        {
            transform.position += Vector3.up * speed;
        }
        else if (currentBehaviour == laserEnum.Idle)
        {
            if ((Mathf.Floor(transform.eulerAngles.z) >= lastRotation + 90) || (Mathf.Floor(transform.eulerAngles.z) == 0 && lastRotation >= 270f))
            {
                ChangeBehaviour();
            }
            else
            {
                transform.rotation = Quaternion.Lerp(transform.rotation, Quaternion.Euler(transform.eulerAngles.x,
                                                                                          transform.eulerAngles.y, transform.eulerAngles.z + 90), 1f * Time.deltaTime);
            }
        }

        if (CameraScreen.ObjectIsBehindCamera(transform))
        {
            Destroy(gameObject);
        }
    }