private static void EnlargeGrowingObjects() { if (enlargingObjects.Count > 0) { float time = Time.time; List <GameObject> totallyEnlarged = new List <GameObject>(); foreach (GameObject gameObject in enlargingObjects.Keys) { EnlargeData enlargeData = enlargingObjects[gameObject]; if (time > enlargeData.CreationTime + enlargeData.EnlargeTimeSeconds) { gameObject.transform.localScale = enlargeData.OriginalScale; totallyEnlarged.Add(gameObject); continue; } Vector3 scale = enlargeData.OriginalScale; if (scale == null) { continue; } float percentEnlarged = (time - enlargeData.CreationTime) / enlargeData.EnlargeTimeSeconds; gameObject.transform.localScale = new Vector3(scale.x * percentEnlarged, scale.y * percentEnlarged, scale.z * percentEnlarged); } foreach (GameObject gameObject in totallyEnlarged) { enlargingObjects.Remove(gameObject); } } }
public static void EnlargeSoon(GameObject instance, float enlargeTimeSeconds) { if (enlargeTimeSeconds <= 0) { return; } if (instance == null || instance.transform == null || !instance.activeInHierarchy) { return; } enlargingObjects[instance] = new EnlargeData() { CreationTime = Time.time, EnlargeTimeSeconds = enlargeTimeSeconds, OriginalScale = instance.transform.localScale }; instance.transform.localScale = Vector3.zero; }