public void StartSmokeScreenTransition() { ClearSmokeObjects(); currentSmokeScreenTransition = Instantiate(smokeScreenScreenTransitionPrefab); currentSmokeScreenTransition.manager = this; currentSmokeScreenTransition.transform.SetParent(GetCurrentCanvas().transform, false); currentSmokeScreenTransition.StartTransition(); // current smoke objects are sent here by the instantiated object }
public void FinishSmokeScreenTransition() { SceneTransition_SmokeEffect boundingImage = Instantiate(smokeScreenScreenTransitionPrefab); boundingImage.transform.SetParent(GetCurrentCanvas().transform, false); // Recreate smoke cloud if (currentSmokeObjects.Count > 0) { foreach (SmokeObject smokeObject in currentSmokeObjects) { UIObjectAnimator newSmokeObject = Instantiate(boundingImage.smokePrefab, boundingImage.transform); RectTransform rectTransform = newSmokeObject.GetComponent <RectTransform>(); rectTransform.sizeDelta = smokeObject.size; rectTransform.localPosition = smokeObject.position; rectTransform.eulerAngles = smokeObject.eulers; newSmokeObject.OnScreen(); newSmokeObjects.Add(newSmokeObject); } } // Clear smoke cloud if (newSmokeObjects.Count > 0) { foreach (UIObjectAnimator smokeObject in newSmokeObjects) { BoxCollider2D boundingBox = boundingImage.GetComponent <BoxCollider2D>(); if (boundingBox != null) { Vector3 thisPos = smokeObject.transform.position; Vector3 targetPos = boundingBox.bounds.ClosestPoint(thisPos); smokeObject.OffScreenToTargetPos(targetPos, 0.75f); } } //ClearSmokeObjects(); } }