// 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; } }
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; } }
// 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); } }