private void DrawVideo() { if (_demoSprite == null) { _demoSprite = SRInternalEditorUtil.LoadResource <Texture2D>("Editor/DemoSprite.png"); } if (_demoSprite == null) { return; } var frameWidth = 400; var frameHeight = 300; var framePadding = 0; var extraFramesStart = 5; var extraFramesEnd = 20; var totalFrames = 29; var fps = 16f; EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); var rect = GUILayoutUtility.GetRect(400 * 0.75f, 300 * 0.75f, GUILayout.ExpandHeight(false), GUILayout.ExpandWidth(false)); var frame = ((int)(EditorApplication.timeSinceStartup * fps)) % (totalFrames + extraFramesStart + extraFramesEnd); frame -= extraFramesStart; var actualFrame = Mathf.Clamp(frame, 0, totalFrames); SRInternalEditorUtil.RenderGif(rect, _demoSprite, actualFrame, frameWidth, frameHeight, 5, framePadding, framePadding); GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); }