Quaternion ClampRotationAroundXAxis(Quaternion q) { q.x /= q.w; q.y /= q.w; q.z /= q.w; q.w = 1.0f; float angleX = 2.0f * Mathf.Rad2Deg * Mathf.Atan(q.x); angleX = verticalRotationRange.Clamp(angleX); q.x = Mathf.Tan(0.5f * Mathf.Deg2Rad * angleX); return(q); }
public IEnumerator Show(VideoPlayer player, RangeFloat interval, Color color) { Assert.IsNotNull(image); image.color = color; float NormalizedTime(float time) => (float)(time / player.length); var rt = GetComponent <RectTransform>(); float anchorMinX = NormalizedTime(interval.min); rt.anchorMin = new Vector2(anchorMinX, 0.0f); rt.anchorMax = new Vector2(anchorMinX, 1.0f); while ((float)player.time <= interval.max) { rt.anchorMax = new Vector2(NormalizedTime(interval.Clamp((float)player.time)), 1.0f); yield return(null); } }