IEnumerator RecordingCo() { painting.Hide(); // Show the painting for a single frame, just so it gets drawn to the // render texture, then we need to hide it, or it'll clobber the line // renderers painting.Show(); yield return(new WaitForEndOfFrame()); painting.Hide(); while (true) { yield return(new WaitForEndOfFrame()); // Trim the line back down to the smallest it can be if (CurrentLine != null && CurrentLine.positionCount >= 2) { var last = CurrentLine.GetPosition(CurrentLine.positionCount - 1); CurrentLine.positionCount = 1; CurrentLine.SetPosition(0, last); } } yield break; }
private void OnDisable() { painter.OnAssignCanvas -= AssignCanvas; painter.OnPainting -= UpdatePaintArea; painter.OnScaleCanvas -= ScaleRelative; painter.Hide(); #if UNITY_EDITOR && UNITY_5_6_OR_NEWER UnityEditor.SceneManagement.EditorSceneManager.sceneSaving -= SaveCacheWithScene; #endif }