private IEnumerator SpawnPerfume(bool randomize) //Not called during tutorial { Vector3 startPos; Vector3 nextPos; Vector3 aim; if (randomize) { nextPos = GetRandomPositionOnEdge(); aim = CameraUtils.RandomWorldPointOnScreen(Camera.main, .25f, .25f, 0); } else { nextPos = perfumes[0].transform.position; aim = perfumes[0].aim; randomize = true; } perfumeBottle.transform.position = nextPos; for (int i = 0; i < perfumes.Length; i++) { PerfParticleItem perf = perfumes[i]; startPos = nextPos; perf.GetComponent <ParticleSystem>().Play(); perf.GetComponent <Collider>().enabled = true; perf.transform.position = startPos; yield return(MicroMixManager.Instance.WaitSecondsPause(.3f)); perf.Setup(startPos, aim); if (i < perfumes.Length - 1) { nextPos = GetRandomPositionOnEdge(); aim = CameraUtils.RandomWorldPointOnScreen(Camera.main, .25f, .25f, 0); perfumeBottle.transform.position = nextPos; } yield return(MicroMixManager.Instance.WaitSecondsPause(.6f)); } }
protected override IEnumerator _Tutorial() { Vector3 startPos = GetRandomPositionOnEdge(); Vector3 aim = CameraUtils.RandomWorldPointOnScreen(Camera.main, .25f, .25f, 0); PerfParticleItem perfume = GetComponentInChildren <PerfParticleItem>(); perfume.Setup(startPos, aim); perfumeBottle.transform.position = perfume.transform.position; dashedLine.gameObject.SetActive(true); Vector3 deltaPos = aim - startPos; float angle = Mathf.Atan2(deltaPos.y, deltaPos.x) * Mathf.Rad2Deg; angle -= 90; dashedLine.transform.position = perfume.transform.position; dashedLine.transform.rotation = Quaternion.Euler(0, 0, angle); yield return(new WaitForSeconds(2f)); dashedLine.gameObject.SetActive(false); }