/// <summary> /// Play the slide effect. /// </summary> public override IEnumerator Play() { control = GetComponent<GUIControl>(); if (control == null) yield break; control.visible = false; Rect rect = control.scaledRect.GetPixelRect(); float startTime = DialogueTime.time; float endTime = startTime + duration; while (DialogueTime.time < endTime) { float elapsed = DialogueTime.time - startTime; float progress = Mathf.Clamp(elapsed / duration, 0, 1); switch (direction) { case SlideDirection.FromBottom: control.Offset = new Vector2(0, (1 - progress) * (Screen.height - rect.y)); break; case SlideDirection.FromTop: control.Offset = new Vector2(0, -(1 - progress) * (rect.y + rect.height)); break; case SlideDirection.FromLeft: control.Offset = new Vector2(-(1 - progress) * (rect.x + rect.width), 0); break; case SlideDirection.FromRight: control.Offset = new Vector2((1 - progress) * (Screen.width - rect.x), 0); break; } control.visible = true; control.Refresh(); yield return null; } control.Offset = Vector2.zero; control.visible = true; control.Refresh(); }
private void UpdateLayoutChild(GUIControl child, Vector2 childWindowSize) { child.Refresh(childWindowSize); child.dRect = clipChildren ? Vector2.zero : new Vector2(rect.x, rect.y); child.UpdateLayout(); //---Was (replaced by dRect above): if (!clipChildren) child.rect = new Rect(child.rect.x + rect.x, child.rect.y + rect.y, child.rect.width, child.rect.height); }
private void UpdateLayoutChild(GUIControl child, Vector2 childWindowSize) { child.Refresh(childWindowSize); child.UpdateLayout(); if (!clipChildren) { child.rect = new Rect(child.rect.x + rect.x, child.rect.y + rect.y, child.rect.width, child.rect.height); } }
/// <summary> /// Play the slide effect. /// </summary> public override IEnumerator Play() { control = GetComponent <GUIControl>(); if (control == null) { yield break; } control.visible = false; Rect rect = control.scaledRect.GetPixelRect(); float startTime = DialogueTime.time; float endTime = startTime + duration; while (DialogueTime.time < endTime) { float elapsed = DialogueTime.time - startTime; float progress = Mathf.Clamp(elapsed / duration, 0, 1); switch (direction) { case SlideDirection.FromBottom: control.Offset = new Vector2(0, (1 - progress) * (Screen.height - rect.y)); break; case SlideDirection.FromTop: control.Offset = new Vector2(0, -(1 - progress) * (rect.y + rect.height)); break; case SlideDirection.FromLeft: control.Offset = new Vector2(-(1 - progress) * (rect.x + rect.width), 0); break; case SlideDirection.FromRight: control.Offset = new Vector2((1 - progress) * (Screen.width - rect.x), 0); break; } control.visible = true; control.Refresh(); yield return(null); } control.Offset = Vector2.zero; control.visible = true; control.Refresh(); }
private void UpdateLayoutChild(GUIControl child, Vector2 childWindowSize) { child.Refresh(childWindowSize); child.dRect = clipChildren ? Vector2.zero : new Vector2(rect.x, rect.y); child.UpdateLayout(); //---Was (replaced by dRect above): if (!clipChildren) child.rect = new Rect(child.rect.x + rect.x, child.rect.y + rect.y, child.rect.width, child.rect.height); }